Commit Graph
771 Commits
Author SHA1 Message Date
Aelin 2bf2f3329e treewide: remove pmb:strict from options
pmbootstrap 3.11 is strict-by-default and previous versions had a broken
implementation which broke upon a full bootstrap of e.g. the systemd
repo. I think it's therefore safe to remove this already, even without
bumping pmbootstrap_min_version.

[ci:skip-vercheck]: doesn't affect any artifacts

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9112>
2026-08-14 11:05:44 +02:00
Clayton Craft 0fbc8f4c3f systemd/postmarketos-base-systemd: depend on systemd-resolved
Some reasons why I think we want to use resolved by default:

- split DNS support (e.g. for VPNs)
- DNS caching
- roaming (switching between wifi, cell, etc) is handled better since DNS
  is tracked per link and the cache is flushed on config changes, so
  there are no stale DNS answers when a device switches
- allows users to easily enable dnssec and DoT (even if we aren't
  enabling these by deafult right now)

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9109>
2026-08-08 20:02:10 +00:00
Clayton Craft 2b05e6da6b systemd/postmarketos-base-systemd: symlink resolv.conf to resolved stub
This logic is "borrowed" from Fedora, and replaces /etc/resolv.conf with
a symlink to the systemd-resolved stub. Fedora does this from an install
script, but that doesn't work for image-based installs since those never
run install scripts on the device, and /etc persists across updates.
I've also seen cases in testing where the symlink was removed by e.g.
accidentally running resolvconf or something similar. So
this runs from a oneshot unit at boot instead, which is ordered before
network-pre.target so NetworkManager doesn't get there first. The old
resolved.post-install script is dropped since the unit covers both cases.

There are some conditions where resolv.conf is **not** replaced:

- when resolv.conf is already a symlink
- when systemd-resolved isn't enabled
- when its stub listener is disabled (via DNSStubListener= in config)
- when systemd isn't running, since resolved isn't either and replacing
  resolv.conf would just break dns (e.g. when running the unit's script
  by hand)
- when resolv.conf is a bind mount (e.g. in a chroot or container)

This assumes that if a user/sys admin wants to hand-roll their own
resolv.conf, that they either disable the systemd-resolved unit or
disable the stub listener in config if they want to use foreign mode.

The resolved drop-ins are also renamed with a 10- prefix, to match the
numbering ranges UAPI.6 recommends for vendor config in /usr.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9109>
2026-08-08 20:02:10 +00:00
Aster Boese be99b6a5bf systemd/postmarketos-base-systemd: remove fbkeyboard preset
The UI package was deleted, so this preset is unneeded.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9176>
2026-08-06 00:39:15 +00:00
Bart Ribbers ca7d0054dd systemd/plasma*: upgrade to 6.7.4
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9252>
2026-08-05 19:19:01 +00:00
Clayton Craft bf92f55a5a systemd/postmarketos-base-systemd: add preset for routewrangler
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9005>
2026-08-05 11:02:07 -07:00
Clayton Craft 758378e049 systemd/postmarketos-base-systemd: only start unudhcpd when UDC exists
It only makes sense to start unudhcpd when a UDC exists, to prevent
unudhcpd starting when there's e.g. only a physical ethernet device.

Fixes #4802

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9243>
2026-08-05 14:26:34 +00:00
Ferass El Hafidi 5d7568dfcf systemd/postmarketos-base-systemd: preset buffyboard.service
Else the buffyboard UI does not work under systemd.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9236>
2026-08-04 16:25:54 +00:00
Pablo Correa Gómez f01a127509 systemd/mutter: fix log spam
This patch from upstream fixes an assertion error that got printed multiple
times per second, causing logs that balooned up to over a gigabyte after a few
hours of usage:

(gnome-shell:4977): Clutter-CRITICAL **: 20:23:10.859: clutter_input_focus_set_cursor_location: assertion 'CLUTTER_IS_INPUT_FOCUS (focus)' failed

The same patches are also used by Debian[1] and already pushed to aports[2]

[1] https://salsa.debian.org/gnome-team/mutter/-/commit/6f11d10a47ffc824db35a3ff7d6ea46b6cc14faf
[2]
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/104720

[ci:skip-build] Already built in CI

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9223>
2026-08-03 13:34:00 +00:00
Clayton Craft 1b20c249cf systemd/postmarketos-base-systemd: fix preset template instance handling
This fixes a bug where template presets with a specified instance were
not being handled. The install script previously parsed the entire line,
including the instance(s) and ran 'systemctl preset' on it all, e.g.
'systemctl preset unudhcpd@.service usb0'.

The script will now:

- detect lines that contain a template + instance(s)
- diff the instances
- run preset on template@instance for all added or removed instances

Template presets that don't have any instances specified in the preset
file (because they have a DefaultInstance= set) are treated just like
any other unit since we can run preset on those and it enables the
template with the default instance.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9026>
2026-07-28 22:57:00 +00:00
Clayton Craft 6d00e47c78 systemd/postmarketos-base-systemd: fix unudhcpd@ preset
According to systemd.preset, which I totally should have read before, we
were not specifying the instance correctly which resulted in this unit
not actually being enabled by default.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9026>
2026-07-28 22:57:00 +00:00
Clayton Craft 3903172aef systemd/postmarketos-base-systemd: drop usb-moded-developer-mode preset
This unit/script shouldn't be run on boot. Mode switching should be
managed by usb-signaller

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9026>
2026-07-28 22:56:57 +00:00
Clayton Craft 8079d33b71 systemd/fwupd: fix compilation on armv7 qemu
Unblocks bpo

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9131>
2026-07-25 22:57:03 +00:00
Aster Boese a589ec7d4f systemd/dsme: remove openrc subpackage
Every other package in extra-repos/systemd removes their openrc
subpackage and openrc scripts. Therefore, dsme should too.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9128>
2026-07-24 21:04:48 +00:00
Clayton Craft 1c7ff6bc68 systemd/cups: backport patch to install sysusers config
Upstream cups has support for generating/installing sysuser config but
it's not yet in a release version. Backport the patch to when it gets
into a release, we'll know to drop the patch.

Fixes #4649

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8875>
2026-07-24 20:16:23 +00:00
Clayton Craft 6b57dc9c72 systemd/fwupd: fork from Alpine to build with systemd support
Unfortunately we can't build fwupd with only unit files, we have to link
against systemd for sd-notify support or else the units probably aren't
going to be properly managed.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
[ci:skip-vercheck] pkgver/pkgrel match upstream

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7245>
2026-07-24 18:06:02 +00:00
Aelin 9c68abf912 systemd/systemd: upgrade to 261.2
[ci:skip-build]: already built successfully in CI

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9121>
2026-07-24 07:40:53 -07:00
Stefan Hansson 55a2caafad systemd/networkmanager: upgrade to 1.56.1
And add patch to fix hotspot breakage.

Closes https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4118

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9053>
2026-07-24 14:12:00 +00:00
Aster Boese 3004382975 systemd: remove eudev provide
No package in aports or pmaports directly depends on eudev
anymore, meaning that this eudev provide is not needed and
only the udev virtual package provide is needed.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8974>
2026-07-23 15:35:37 -07:00
Aelin 131f1be52e systemd/systemd: disable ldconfig
The ldconfig service does not serve a purpose on musl systems.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9111>
2026-07-22 15:24:13 +00:00
Aelin 6e90d14c4d systemd/systemd-stage0: disable unnecessary options
This brings us down from 2400 to around 1000 targets when compiling
systemd-stage0. dbus still builds fine after these changes.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9093>
2026-07-20 15:35:16 +00:00
Clayton Craft ff24e3ab4c systemd/postmarketos-base-systemd: enable ssh pam inhibit
This enables pam_systemd for sshd sessions and configures it to inhibit
sleep when a session is open.

This config should be upstreamed to aports once support is merged in
systemd: https://github.com/systemd/systemd/pull/42275

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8672>
2026-07-19 19:51:56 +00:00
Clayton Craft a372a2f2c5 systemd/systemd: backport patch adding inhibit support to pam_systemd
This was merged upstream but won't be in a release until v262

https://github.com/systemd/systemd/pull/42275

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8672>
2026-07-19 19:51:56 +00:00
Clayton Craft e4a8fb375c systemd/postmarketos-base-systemd: remove sleep-inhibitor preset
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8672>
2026-07-19 19:51:56 +00:00
Clayton Craft 594e361a71 systemd/postmarketos-base-systemd: inhibit sleep when apk is running
This uses some lightweight tools with systemd-inhibit to block sleep and
shutdown when apk is running. This is being installed in a new subpkg
that is pulled in only when apk-tools is installed, so that this is not
installed on duranium.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8672>
2026-07-19 19:51:53 +00:00
Aster Boese 5f836d5b2c treewide: add ending newline to files missing it
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8197>
2026-07-18 11:51:57 +02:00
Bart Ribbers 17d6f37984 systemd/plasma: upgrade to 6.7.3
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9028>
2026-07-15 08:11:00 +02:00
Clayton Craft 994ed89373 systemd/systemd: add Ollie as co-maintainer
Fixes #4681

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9004>
2026-07-12 13:02:20 -07:00
Bart Ribbers 1bbed4bf52 systemd/kjournald: upgrade to 26.04.3
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8990>
2026-07-12 08:17:39 +02:00
Aster Boese 14897810c9 systemd: disable compat-sysv-interfaces
compat-sysv-interfaces is meant for systems that
already have technical debt from switching from
sysv. postmarketOS does not have this, so this
is not needed.

All this option does is enable runlevels 0-6
and install legacy.conf, which also doesn't
work with our packaging because it installs
symlinks who's target only exists in
subpackages.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8996>
2026-07-11 14:47:40 +00:00
Clayton Craft 8d0cc81e23 systemd/postmarketos-base-systemd: move install= to top level
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8993>
2026-07-10 21:44:39 +00:00
Clayton Craft 37e1370ae9 systemd/postmarketos-base-systemd: don't enable time-wait-sync
This removes the other half of the workaround for #3816, that should have been in !8487.

Fixes #4687

This reverts commit 5e435f9669.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8993>
2026-07-10 21:44:39 +00:00
Achill Gilgenast 8433274c9a systemd/postmarketos-base-systemd: enable phosh-os-updater.service
See HEAD~

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8952>
2026-07-09 22:57:07 -07:00
Aster Boese 5e5a451de1 systemd: remove unnecessary provider_priority's
When all the provides are versioned, provider_priority does nothing, so it is safe and correct to remove.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8889>
2026-07-08 06:55:12 +02:00
Aster Boese 61ee5c6fe8 treewide: remove contributor comments
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8950>
2026-07-06 20:41:42 +02:00
Robert Eckelmann 5b9f67f79e extra-repos/systemd: open-iscsi, open-isns new aports
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8938>
2026-07-05 20:36:53 +09:00
Achill Gilgenast f86811fddf systemd/phosh: upgrade to 0.56.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8953>
2026-07-05 10:56:56 +02:00
Bart Ribbers 95d33b4472 systemd/plasma*: upgrade to 6.7.2
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8936>
2026-07-01 09:05:40 +02:00
Aelin f36462e85b systemd/systemd: upgrade to 261.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8912>
2026-06-29 13:49:22 +00:00
Yu Watanabe 5ff3f5ed44 systemd/systemd: adds libbz2 dependency
Before this change, systemd package depends on other compression
libraries, but does not depend on libbz2. Let's also make it depend
on libbz2.

This also makes bzip2-dev explicitly installed on build, like other
compression libraries like lz4-dev, xz-dev, zlib-dev, and zstd-dev.
Currently, it is indirectly installed as glib-dev depends on it.
So the makedepends= change does not effectively changes anything.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8926>
2026-06-29 13:28:06 +00:00
Max Brosnahan e22fb90295 systemd/plasma-workspace: Add polkit rule to allow setting the timezone without authorization
Before this change plasma-mobile required authentication to set the timezone during the first boot setup flow. Now plasma-workspace includes the file from https://gitlab.alpinelinux.org/alpine/aports/-/blob/d61317fd62d0729c76478cf2be3f79d1c7add4a7/community/plasma-workspace/org.kde.timezone.rules.
This ensures that all the plasma front ends allow setting the timezone during first boot setup.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8925>
2026-06-29 09:43:34 +00:00
Aster Boese 6347ed4510 systemd/*: remove eudev-dev dependencies
Even though systemd-dev provides eudev-dev, it doesn't make sense
to keep these dependencies, since we fully control the systemd
repo and don't need to work around these things. Most of these
packages depend on systemd-dev anyways, making this second
dependency useless.

This frees up some room for modifying the provides of systemd to
better integrate with the regular repo in the future.

Signed-off-by: Aster Boese <asterboese@mailbox.org>

[ci:skip-vercheck]: enabling package for arch

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8902>
2026-06-26 09:08:18 +00:00
Bart Ribbers 6cbbf2b58e systemd/plasma*: upgrade to 6.7.1
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8895>
2026-06-24 08:20:57 +02:00
Aelin a2c53ce8f4 systemd/postmarketos-base-systemd: kill-pbsplash.service is no more
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8885>
2026-06-23 10:20:40 +00:00
Aelin b32a0084f8 systemd/dbus-broker: run tests on more architectures in CI
[ci:skip-vercheck]: no effect in BPO

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8882>
2026-06-22 04:43:16 +02:00
Aelin bd970948e6 systemd/systemd: run tests on more architectures in CI
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8864>
2026-06-20 11:42:56 +00:00
Aelin 832379102c systemd/systemd: upgrade to 261
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8864>
2026-06-20 11:42:56 +00:00
Aelin a0dd6b1d6a systemd/systemd-stage0: upgrade to 261
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8864>
2026-06-20 11:42:56 +00:00
Aelin fddebb2279 systemd/systemd: fix the provider mess
This fixes two issues:

1. I was investigating why currently, pmbootstrap build --force
   libcamera would fail. It turns out that the problem was possible to
   reduce down to apk add eudev-dev resulting in installing eudev-dev
   instead of systemd-dev, even with the systemd repository enabled.
   This is because apk actually thinks it has a higher version:

name <eudev-dev> selected from selectable list
select_package: eudev-dev (requirers=1, autosel=1, iif=0, order_id=0x40005807)
  consider systemd-dev-261_rc4-r0 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=100, installed=0
   prefer existing package
    choose as new provider
  consider eudev-dev-3.2.14-r6 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=100, installed=0
    select latest by requested name (greater)
    choose as new provider
  consider libudev-zero-dev-1.0.4-r0 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=20, installed=0
    select latest by requested name (less)
selecting: eudev-dev-3.2.14-r6, available: 1
assign eudev-dev to eudev-dev-3.2.14-r6
disqualify_package: systemd-dev-261_rc4-r0 (conflicting provides)
disqualify_package: libudev-zero-dev-1.0.4-r0 (conflicting provides)

   And why is that? It's because we have two providers here: One is
   eudev-dev with a provider version of 3.2.14-r6, and the other is
   systemd-dev with a provider version that is empty. This then results
   in apk thinking the version number is greater, as seen above in the
   verbose output. An unversioned provides= for an exact package name
   match will never, ever, ever have any effect, even if the priority is
   set super high, because the version number comparison is before apk
   even starts looking at provider priorities.

   Therefore, we should not have unversioned provides for eudev,
   eudev-dev, eudev-libs and udev. Since those have fairly low version
   numbers, we can just provide them with systemd's version number and
   we'll be fine. This will now result in apk actually installing
   systemd-dev when eudev-dev is prompted for installation.

2. After fixing the aforementioned issue, I noticed that I couldn't
   build anything anymore. This is because my dependency tree would pull
   in systemd and systemd-udev - completely normal. However, both
   systemd and systemd-udev were providing eudev, and apk will refuse to
   install two packages that provide the same thing at the same time.
   The fix for this is to just not provide eudev in the top-level
   systemd package and rather let systemd-udev do that.

With this, I can now finally build libcamera again!

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8857>
2026-06-19 03:46:53 +02:00
Dylan Van Assche 9bccd6b5e9 systemd/postmarketos-base-systemd: enable unudhpcd service
Start unudhpcd on boot

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8553>
2026-06-18 06:27:13 +00:00