Commit graph

2445 commits

Author SHA1 Message Date
jane400
8d3998b561
main/ttyescape: move openrc specifics into subpackage (MR 5364)
Depends on https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/69583
2024-07-23 09:53:58 -07:00
jane400
c3dfa1cdb4
main/postmarketos-base-ui: split out openrc specifics into subpackages (MR 5364)
Also renames subpackage bluez to bluez-openrc
2024-07-23 09:53:58 -07:00
jane400
dc81fbcd23
main/postmarketos-base: split openrc specifics into subpackages (MR 5364)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-07-23 09:53:58 -07:00
Arnav Singh
a5e28010e5
main/pinephone-callaudiod: upgrade to 0.1.3 (MR 5360)
[ci:skip-build]: already built successfully in CI
2024-07-19 15:24:17 +02:00
Anri Dellal
985741dd65
main/postmarketos-base-ui: rebuild to exclude font-twemoji from CLI (MR 5352)
Add postmarketos-base-ui-wayland
Move _pmb_recommends to x11 and wayland subpackages

[ci:skip-build] Was built before

Co-authored-by: jane400 <5940129-jane400@users.noreply.gitlab.com>
2024-07-17 11:44:31 -07:00
Arnav Singh
030c5c1ec1
main/pinephone-callaudiod: new aport (MR 5349)
This provides a daemon that implements the same D-Bus API as callaudiod
in aports community/callaudiod, but works with the new audio profiles
generated by PulseAudio v17 and PipeWire v1.2 for pine64-pinephone
that the aports package's daemon does not.

This daemon is specific to the pine64-pinephone since it has
a hard-coded list of profiles and ALSA devices. If other devices also happen
to have UCM settings that trigger PulseAudio / PipeWire to generate
the combinatorial audio profiles that callaudiod cannot handle, and if
a callaudiod fix / alternative does not appear, then the maintainer (me) is
open to making this daemon more broadly useful for other devices, say by
having the hard-coded strings in device-specific config files.

Ref: #2968
2024-07-16 15:54:49 -07:00
Clayton Craft
e30db78d84
main/postmarketos-ui-phosh: don't depend on phosh-service (MR 5342)
The package name is wrong now (!5315), and the service stuff is
automatically installed by systemd-service

[ci:skip-build]: already built successfully in CI
2024-07-12 10:21:31 +02:00
Clayton Craft
cbe2f4f7f6
main/postmarketos-mkinitfs: upgrade to 2.5.1 (MR 5341)
Fixes:

        - ignore leading/trailing whitespace in files (MR 55)
        - fix spelling typo in manpage
        - add missing /usr/sbin symlinks for UsrMerge (MR 53)
[ci:skip-build]: already built successfully in CI
2024-07-11 15:00:04 -07:00
jane400
aed9243c65
main/postmarketos-initramfs-minimal: backport fsck and mount sysroot rw (MR 5238) 2024-07-09 15:49:31 -07:00
jane400
59fd336bbc
main/postmarketos-initramfs: run fsck and mount sysroot as rw (MR 5238)
This moves the responsibility to auto-repair filesystems to the
initramfs. (I think we don't do this at all right now).
We don't try to mount broken partitions at all, we tell the user
that the system is broken and fail_to_boot.

The flow is now:

1. mount the boot partition (read-only) for initramfs-extra
2. initramfs-extra is extracted (with the needed fsck executables)
3. fsck the root partition
4. mount root partition (read-write)
5. fsck the boot partition
6. mount the boot partition (read-write)

This helps with the systemd bringup, as we want to make use of
systemd-firstboot, which sets /etc and enabled services up. As
this service is responsible of setting up /etc, it is run before
/etc/fstab is read and before / is remounted read-write.
2024-07-09 15:49:26 -07:00
Martijn Braam
33d35c0835
*/: Drop maintainership (MR 5302)
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
2024-07-03 17:20:51 +02:00
fossdd
53455c41ac
main/postmarketos-ui-i3wm: take over maintainership (MR 5309) 2024-07-03 17:03:24 +02:00
Luca Weiss
a4153e809f
*/*: update Luca's email address (MR 5291)
[ci:ignore-count]
[ci:skip-build]
[ci:skip-vercheck]
2024-07-01 11:55:02 +02:00
Clayton Craft
fe20c109fc
main/postmarketos-bootsplash: fix kill-pbsplash systemd service (MR 5286)
This wasn't actually getting run on boot because After=graphical.target
created an ordering issue and systemd was disabling it.

I saw this ordering issue in the journal after finding that pbsplash was
still running in the background after the UI loaded, and confirmed it by
running systemd-analyze.
2024-06-27 19:17:38 +02:00
Richard Acayan
f3b649c3c0
main/postmarketos-initramfs: invalidate cached rootfs after unlock (MR 5288)
The referenced commit had surfaced a bug with the unlocking code, which
would attempt to change the output of find_root_partition while the
cached PMOS_ROOT is stale and active. Clear this variable to force
find_root_partition to find the new rootfs value.

Fixes: 7030e08e7b ("postmarketos-initramfs: check for root subpartition (MR 5048)")
[ci:skip-build]: already built successfully in CI
2024-06-27 10:49:33 -04:00
Caleb Connolly
1b19bd7367
postmarketos-initramfs: debug-shell: buffyboard (MR 5048)
Drop the console-shell hook in favour of stuffing buffyboard into the
initramfs. This makes it possible to get a debug shell directly on the
device without needing to use a computer.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build]: already built successfully in CI
2024-06-26 17:32:33 -07:00
Caleb Connolly
abca4acbe0
postmarketos-initramfs: better wait_[br]oot_partition (MR 5048)
Rework the messages and avoid re-spawning the splash on every check.
Additionally, add a call to check_keys, this lets users drop to a debug
shell or export logs to triage this failure (particularly useful for
hard-to-reproduce issues).

Finally, add a (liberal) 30 second timeout and dump logs at the end. If
we're just waiting for a device to show up and it doesn't after 30
seconds then it's probably never going to...

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-26 17:32:33 -07:00
Caleb Connolly
7030e08e7b
postmarketos-initramfs: check for root subpartition (MR 5048)
In mount_subpartition we currently try to look for the boot partition,
to see if we're done (either we aren't using subpartitions or we found
the right one). However it is possible that a device might have
originally used the subpartition scheme, but was later converted to have
a real boot partition (for EFI for example).

In this scenario, the boot partition would be found immediately, but the
root subpartition would not be.

Address this by making mount_subpartition check for success by calling
find_root_partition instead of find_boot_partition. For most
installations this has no impact.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-26 17:32:33 -07:00
Caleb Connolly
0cd613c8b0
postmarketos-initramfs: drop duplicate in initramfs-base.files (MR 5048)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-26 17:32:33 -07:00
Clayton Craft
629a143de2
main/postmarketos-base-ui-gnome: auto-start apk-polkit on systemd (MR 5284)
fixes one issue reported in
https://gitlab.com/postmarketOS/pmaports/-/issues/2899

[ci:skip-build]: already built successfully in CI
2024-06-26 16:07:56 -07:00
Caleb Connolly
9c9e47b059
main/postmarketos-bootsplash: systemd support (MR 5181)
Install a kill-pbsplash systemd service which is configured to be
started as part of the graphical-session user target. Additionally
install an override so that if the display-manager service (aliases to
gdm, sddm, etc) fails to start it will still kill pbsplash.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-06-24 16:00:27 -07:00
methanal
28179dbb99
main/dtbtool-sprd: add dtc as a dependency as a fallback (MR 5275)
Currently, dtbtool-sprd has an argument -p which accepts the path to the
dtc binary. When it's not provided, it should use the dtc binary installed
in the system as a fallback. However, that's not the case. The following
error is reported:

Found file: test.dtb ... skip, failed to scan for 'sprd,sc-id = <' tag

...even though test.dtb has the `sprd,sc-id` property.

In order to mitigate such issues, install dtc as a dependency of the
package.
2024-06-24 15:51:29 +03:00
Oliver Smith
90786936f0
main/mobile-config-firefox: upgrade to 4.3.2 (MR 5258)
[ci:skip-build]: already built successfully in CI
2024-06-23 14:52:05 +02:00
Caleb Connolly
3ed9591e41
treewide: drop PMOS_NO_OUTPUT_REDIRECT (MR 5240)
This cmdline argument is now a no-op. Drop it everywhere and add a new
CI check to enforce this.

Adjust the deprecated "minimal" initramfs variant to use
pmos.debug-shell to enable logging instead. It doesn't /support/
dropping to a shell, so the variable takes on a different meaning. But
that's ok since it's at least more consistent.

[ci:ignore-count]
[ci:skip-vercheck]
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-build]: kernel builds are very likely to go through now
2024-06-23 14:48:20 +02:00
Dylan Van Assche
dfd4a998c8
main/bootmac: upgrade to 0.5.0 (MR 5239)
[ci:skip-build]: already built successfully in CI
2024-06-20 10:07:07 -07:00
Clayton Craft
ba7b4d77da
main/boot-deploy: upgrade to 0.16.2 (MR 5255)
Changelog:

Fixes:
- Validate images/partition sizes before flashing (MR 64)

[ci:skip-build] already built successfully in CI
2024-06-20 09:50:48 -07:00
Clayton Craft
eb3c299a61
main/postmarketos-initramfs-minimal: update to 2.7.1 (MR 5251)
This updates the minimal initramfs to be at the same version that
postmarketos-initramfs was when it was split off. This should have been
done as a part of !5000.

The changelog from git:

- main/postmarketos-initramfs: fix stowaway (MR 5206)
- main/msm-fb-refresher: move cleanup from initramfs into msm-fb-refresher (MR 5191)
- main/postmarketos-mkinitfs-hook-debug-shell: Cleanup debug-shell telnet server (MR 5191)
- main/postmarketos-initramfs: Allow packages to define cleanup hooks (MR 5191)
- main/postmarketos-initramfs: update comment on why we mount /boot (MR 5089)
- main/postmarketos-initramfs: add options for charset to mount vfat /boot (MR 5089)
- main/postmarketos-initramfs: add some sane mount options to /boot (MR 5089)
- main/postmarketos-initramfs: stowaway rootfs (MR 4386)
- main/postmarketos-initramfs: add crc32_generic module for F2FS (MR 4973)
- main/postmarketos-initramfs: add USB booting support (MR 4947)
- main/postmarketos-initramfs: fix starting unudhcpd when no UDC configured (MR 4907)
- postmarketos-initramfs: bigger log image size (MR 4880)
- main/postmarketos-initramfs: allow redirect logs to pmsg device (MR 4800)
2024-06-20 00:00:27 +02:00
jane400
48250d4ad2
main/postmarketos-initramfs*: prohibit installing multiple -initramfs packages (MR 5249)
Thanks to a good hint of Craftyguy, we just have too use versioned
provides.

Closes #2903
[ci:skip-build]: already built successfully in CI
2024-06-19 10:35:30 -07:00
Clayton Craft
a2d30ae115
main/boot-deploy: upgrade to 0.16.1 (MR 5244)
Fixes:
        - flash_android_bootimg: check validate target partition size before flashing (MR 63)
        - copy target dtb to a temp directory for qcom and sprd dt.img types (MR 57)

Other:
        - ci: add integration test for exynos qcdt (MR 57)
        - ci: switch to unpackbooting from osm0sis (MR 57)

[ci:skip-build] already built successfully in CI
2024-06-18 15:29:38 -07:00
Clayton Craft
5fffa17b06
main/postmarketos-initramfs: explicitly depend on libinput-libs (MR 5242)
pma!5000 added a new implicit dependency on libinput, because it
specified libinput files in the initramfs file hook. mkinitfs considers
it fatal if it cannot find files listed in a file hook.

Later this could be 'optimized' by adding a -libinput subpkg and an
`install_if=libinput-libs` to add this file hook so it's not installed
everywhere... but the size increase isn't too much for UIs.. someone can
do this later.

> libinput-libs-1.26.0-r0 installed size:
> 476 KiB

This fixes a missing dependency problem where a UI (e.g. "none") doesn't
normally depend on libinput, and mkinitfs would fail because these files
were missing.
2024-06-18 14:23:29 -07:00
Caleb Connolly
7c98127746
postmarketos-initramfs: switch to udev and kmod (MR 5000)
mdev is slow and missing features, it also requires that we load all the
modules that we include at once making the boot process slower.

udev is required for unl0kr (and buffyboard), it can also load modules
on demand (and asynchronously). Making the boot process considerably
faster on devices, especially for generic images where we have lots of
drivers for different display panels in the initramfs.

Additionally, import full fat modprobe from the kmod package, this is
required to support compressed modules.

This brings us more in line with other distros and generally improves
compatibility.

If devices use broken kernel modules which don't correctly define
modalias', these drivers may not be loaded by udev. This should be fixed
by defining the missing modalias statements in the driver.

This also runs udev earlier in the init, so that display drivers are
loaded before the splash in case they are needed.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2024-06-18 12:35:05 -07:00
Caleb Connolly
dd28314ba2
postmarketos-initramfs: debug-shell 3.0 (MR 5000)
This incorprates the debug-shell functionality directly into the
initramfs, so it's no longer necessary to build and boot a custom
initramfs in order to debug your device.

Additionally, the behaviour of the debug-shell is entirely reworked, It
now creates an ACM serial gadget which can be accessed via any normal
terminal emulator (picocom, minicom, etc; or PuTTY on windows). Rather
than just invoking sh, the debug-shell now creates a respawning getty on
both the new virtual console and the active console (this will either be
the UART console or tty0/1).

It is necessary to spawn these shells via getty since the logging rework
means we can no longer assume that stdin/out/err reference a TTY.

In addition to the above, it is now possible to trigger a log dump by
holding volume up during boot. This can be useful for helping users
debug their devices if the issue doesn't result in a failure that can be
detected in the initramfs.

With these changes, the console-shell and debug-shell hook packages are
reduced to only adding the additional tools/features. console-shell is
still required for fbkeyboard, and debug-shell for the setup_usb_storage
tool.

Co-Developed-by: Clayton Craft <craftyguy@postmarketos.org>
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
f66238f045
postmarketos-initramfs: handle empty hooks dir (MR 5000)
For some reason globbing doesn't work properly for empty directories,
adjust the check in run_hooks to ensure the directory both exists and
contains something, otherwise we get an error about
"/hooks-cleanup/*.sh" not existing.

/ # mkdir blah
/ # for x in blah/*; do echo $x; done
blah/*
/ # touch blah/beep
/ # for x in blah/*; do echo $x; done
blah/beep

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
5a27482c20
postmarketos-initramfs: depend on mdevd (MR 5000)
I somehow hit a case where this wasn't installed and
/lib/mdev/persistent-storage wasn't available. Let's just explicitly
depend on mdevd...

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
51cde04a4b
main/iskey: new aport (MR 5000)
iskey is a tiny tool that reports if any of the given keys are pressed.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
118a30935e
postmarketos-initramfs: mount subpartitions after hooks (MR 5000)
This step is the most likely to go wrong or have issues, and it has side
effects which can make it difficult to run multiple times on one boot.
Move it to after hooks so that e.g. when dropping to a debug shell, we
land before the first call.

This also makes booting to hooks a faster in many cases.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
5dcb7aab62
postmarketos-initramfs: use dd to allocate logs image (MR 5000)
fallocate seems to cause some strange behaviour where the logs.img file
is treated like it's empty. Given it's small and in a ramdisk let's just
create it with dd instead.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
709768214c
postmarketos-initramfs: check if UDC is configured before clearing (MR 5000)
This fixes the annoying "sh: write error" and "Couldn't write to clear
UDC" messages that happen on every single boot.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
75613d9f69
postmarketos-initramfs: make CONFIGFS global (MR 5000)
This variable is being used in more places, just make it global.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
95b22138c4
postmarketos-initramfs: log to kernel ringbuffer (MR 5000)
Rework logging to always log the initramfs output to the kernel
ringbuffer and deprecate PMOS_NO_OUTPUT_REDIRECT in favour of following
the kernel loglevel.

I know it seems silly to use syslogd for this, but it's necessary to
buffer writes to /dev/kmsg per-line if we want to correctly set the log
level, and "tee" does not do this (it will write multiple lines at once,
resulting in "<14>" prints in the ringbuffer). The main advantage to
this is that we won't have kernel logs cut in half by initramfs logs
anymore, everything will be nicely line buffered!

The previous logging solution of multiple "tail" commands would actually
fail to log up to the last few lines before a crash due to how tail
works (it polls the file and buffers lines).

I attempted something like this before, but I stopped after running into
ratelimiting issues. These are now resolved by configuring the
printk_devkmsg sysctl.

Dropping PMOS_NO_OUTPUT_REDIRECT:

The general motivations behind PMOS_NO_OUTPUT_REDIRECT was to avoid
cluttering up the console with initramfs logs when they aren't wanted;
this is now handled instead by the kernels logging facility. We log to
the ringbuffer at LOGLEVEL_INFO, so if "quiet" is specified on the
cmdline (or the loglevel is otherwise set above info) then initramfs
logs will also not be shown.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
6c799ac4f6
postmarketos-initramfs: fork -minimal variant (MR 5000)
We plan to make a lot of changes to the initramfs which will require
incresaing the size. There are some devices that have literally no free
space for this, so make a -minimal initramfs fork that can continue to
support those while we update the regular initramfs.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:34:59 -07:00
Pablo Correa Gómez
8a7042faf6
main/postmarketos-base-ui-gnome: replace evince with papers (MR 5234)
papers is now in community in alpine, and is the GTK4
replacement. Current main version (still not available in alpine),
fits phone screens, but makes sense to change it already now.

Relates #1479

[ci:skip-vercheck] changes are in pmb_recommends
[ci:skip-build]: already built successfully in CI
2024-06-17 17:54:18 +02:00
Clayton Craft
c2f7be3cec
main/postmarketos-base-ui: drop pulseaudio wireplumber config (MR 5225)
This was upstreamed to Alpine aports, see aports@cc2f22db473
2024-06-12 10:40:57 +03:00
Pablo Correa Gómez
d375a5d75d
main/postmarketos-base-ui: add pipewire-spa-bluez to pipewire-audio (MR 5163)
And configure any modem to be able to use it, so that we can keep
controlling things like bluetooth headsets, and take phone calls from a
car.

[ci:skip-build]: already built successfully in CI
2024-06-11 11:20:10 +02:00
Clayton Craft
d46d5855be
main/postmarketos-ui-phosh: drop hardcoded dependency on pulseaudio (MR 5203)
This allows users to test out pipewire audio on phosh. Currently the
default audio backend is pulseaudio. This is configured in pmos-base-ui.

fixes #2013
[ci:skip-build]: already built successfully in CI
2024-06-06 12:42:03 +02:00
SSD
086078ded7
main/postmarketos-initramfs: fix stowaway (MR 5206)
I have noticed a bug. Because is some cases, uuid for the boot partition is set, it won't reach logic for the stowaway.

[ci:skip-build]: already built successfully in CI
2024-06-06 11:12:48 +02:00
Willow Barraco
c5ca6732a0
main/postmarketos-base-ui-cage: add CAGE_UI_ARGS (MR 5168)
Usefull to pass arguments to the cage exec program.

[ci:skip-build]: already built successfully in CI
2024-06-05 22:43:45 +02:00
mae
61133a23ae
main/msm-fb-refresher: move cleanup from initramfs into msm-fb-refresher (MR 5191)
[ci:skip-build]: already built successfully in CI
2024-06-04 20:46:50 +02:00
mae
25ad7892a1
main/postmarketos-mkinitfs-hook-debug-shell: Cleanup debug-shell telnet server (MR 5191)
Moved the cleanup code from initramfs
2024-06-04 20:46:50 +02:00
mae
ebd351c346
main/postmarketos-initramfs: Allow packages to define cleanup hooks (MR 5191) 2024-06-04 18:44:34 +00:00