pkgname-nonfree-firmware packages have been not allowed for years, but nearly
every device package just didn't fix that. With the new grep check, these need
to be fixed no matter what.
The changing of `replaces=` to include the full name of the package and not
the pkgname variable is to work around limitations of the grep ci check, as it
cannot differentiate between a nonfree-firmware subpackage and a string
stating its replacement. A workaround for that is to use the whole package
name, as the grep check checks for the pkgname variable.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8958>
The POSIX standard defines a line as terminating in a newline. Non-POSIX
systems (such as Windows) generally do not automatically add a newline
to the end of a line, leading to some files not having a newline at their
end. This is an issue because, while a good portion of modern Linux tooling
can handle missing newlines, some cannot, leading to breakage on
non-conformant files. This is also better for consistency and preventing
unnecessary edits to files because a contributor's editor saves a file with
an automatically added newline when there wasn't one originally.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8197>
These subpackages were recently split out of pipewire and broke
camera and webrtc support. These must be added to depends as
there is no way to install_if with flatpaks and these were
previously already part of the pipewire package, so the status-
quo does not change.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9046>
Reorders the keys to match newapkbuild and fixed
the provider, since the current logic made it
always be considered a lower provider priority
than the Alpine installkernel. Also moved the
location of the installed binary to not need
to replace Alpine's installkernel.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8982>
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>
The current systemd user namespaces model
almost works with confidentiality, but a single
check for kprobes is used, which confidentiality
disables, so user namespaces fail. For now,
just downgrade lockdown to integrity until this
is sorted out in systemd.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8988>
_defconfig="defconfig" is the default logic in pmbootstrap, and thus should not be
duplicated in kernel packages. The only use-case for _defconfig is for when the
defconfig differs from what is automatically selected.
linux-next is not modified because it still uses the old kconfig fragments logic and
would break with this change.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8978>
_pmb_default is only for changing the default provider from
the package with the highest provider_priority. This package
is using it with the providers that already have the highest
priority, making _pmb_default a no-op. Thus, removing this
is a basic logic cleanup.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8949>
When systemd was added to postmarketOS, the postmarketos-base-ui-tinydm subpackage was never
updated to support it, meaning that only OpenRC ever got the config file. This commit fixes
that by creating a postmarketos-base-ui-tinydm-openrc subpackage and moving the OpenRC logic
there, leaving only the service manager agnostic config in the postmarketos-base-ui-tinydm
subpackage.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8939>
As per the apk-tools and abuild source code, 0 is a perfectly valid integer
for provider_priority, but our Python tests currently fail with a priority of 0
because 0 and None are the same in the if statement that checks priority.
Changes the if statement that checks priority to fail if the priority is
explicitly None.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8973>
phoc only loads one config file, with `/etc/phoc.ini` overriding `/usr/share/phosh/phoc.ini`.
Because `/usr/share/phosh/phoc.ini` only contains defaults, it is safe to override with the
device's phoc.ini and free up `/etc/phoc.ini` for user configs. If a user has modified
`/etc/phoc.ini` on their install, it will not be removed, making this change safe.
Also does various small cleanups, like setting the `install_if` to `postmarketos-ui-phosh`
instead of plain `phosh`.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8845>
Cleans up the packaging and installs the firmware files to /usr/lib/. Moves
the actual firmware out of the -common subpackage and into the regular
package, as this is the logical move, since the subpackages depend upon the
parent package anyways and the -dpu subpackage depends upon the firmware
files, which wouldn't exist if the -common subpackage wasn't previously
installed.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8915>
Previously, kconfigcheck would only run if the kernel configs of a
kernel package where changed. This means that, if a kernel package
is not directly upgraded, the kernel config will most likely never
be touched, leading to extremely out-of-date kernel configs.
Checking when the APKBUILD is modified instead would force the
check at every modification of a kernel package, forcing more
up-to-date configs.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8923>
The original disallowing of these subpackages happened in 2024.
It was expected that device packages would be voluntarily migrated
by the maintainers to reflect this new rule. But, this never happened.
Thus, enforcing this on all new and changed packages will force
the fixing of these packages.
This is not a treewide because so many packages still use the
nonfree-firmware subpackage logic that an MR would be an absolute pain
to handle and rebase. This is also a very easy fix to incorporate into
unrelated changes.
See https://postmarketos.org/edge/2024/02/15/default-nonfree-fw/
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8914>
With the switch to sudo-rs, v26.06 and edge installs do not have
doas by default. Along with this, we installed doas on old installs
with doas-sudo-shim, so the call to sudo also works there. Therefore,
recommending and calling sudo is the correct option here.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8873>
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>
/etc/local.d/ is reserved entirely for sysadmins for usage with OpenRC.
There was an effort to move this path to *-openrc subpackages in
abuild!484, but it was stalled for this reason. As such, it makes
the most sense to disallow all files in /etc/local.d/ in packaging.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8745>
Persisted_Captules.sh is huge (70 MB) and can cause boot-deploy failures
when doing transactions that do large modifications to `/boot/`, such as
switching kernel packages. Persisted_Capsules.sh is recreated on reboot
and we do not use it for anything currently, so it is safe to remove in a
hook.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8368>
The input group should not be blanket allowed for UIs that do not need it as
it bypasses the security benefits of Wayland. This change explicitly adds
the input group to only the UIs that absolutely require it, which is only
SXMO due to their udev rules and lisgd.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
[ci:skip-vercheck]
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8767>