logger -> journald
agetty, walls, mount and a few others
also adjusted to a meson for a simpler APKBUILD
not building hexdump as this is part of the default pmbootstrap install
rename to avoid cycial dependency
[ci:skip-build]: aarch64 was build tested locally (by Clayton), x86_64
build job failed in CI because the artifacts were too big but the actual
package building worked
I don't understand why the upstream APKBUILD provides jack-dev with
pipewire's pkg{ver,rel}. This blocks users potentially running
abuild deps on aports packages, so not a huge loss.
Unblocking BPO with this 🙃
[ci:skip-build]: built locally, merging as critical.
[ci:skip-build]: CI builds sucessfully on x86_64 and armv7,
there's an failure in aarch64/gnome-shell, but compiling
on a native aarch64 system and testing also works. (-jane400)
This doens't work with crossdirect since apparently it calls the
compiler during package() stage:
ERROR: Error in gtkdoc helper script:
ERROR: ['/usr/bin/gtkdoc-scangobj', .... failed with status 1
============================================================================================
ERROR: crossdirect was called with: LD_PRELOAD=libfakeroot.so
This should ensure that postmarketos-base-systemd installs our linux-pam
package, not the one from alpine. (The old way to pin our package was
based on fragile version pinning, as our pam wasn't bumped to 9999, but
had the same version as aports).
fixes#3170
[ci:skip-build]: already built successfully in CI
APKBUILD was rebased onto the latest verstion in Alpine aports (1.50.0-r3)
[ci:skip-build]: bug in CI prevents it from completing, but builds fine locally
This wasn't actually working because it was using an unset var when
calling 'systemctl disable'.
[ci:skip-build]: CI cannot complete build testing because of infra
issue, but that's fine because this change doens't actually require
compiling systemd.
New dependencies were not included so this failed to build properly. The
other changes were pulled from the version in aports, to make rebasing
in the future easier.
[ci:skip-build]: CI cannot complete build testing because of infra
issues downloading from download.kde.org
libseat 0.9.0 no longer performs an automatic VT switch when taking
control of a seat to allow sessions to be started in the background. As
consequence, one must manually switch if one wants a background session
to be immediately activated.
Issue a chvt on ExecStartPost, when the service is deemed running.
Upstream: https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1566
[ci:skip-build]: already built successfully in CI
When kernel auditing is enabled and things crash, this leads to a lot of
really annoying messages printed to the console/TTY that can interfere
with debug. Kernel audit info can be reached using other userspace
tools.
[ci:skip-build]: already built successfully in CI
We actually want usr/lib/udevd here, not lib/udevd. This fixes the
initramfs not building and some other weirdness.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Do note that this commit was amended after the fact, the patch got
inlined into this repo to not brick this branch if the MR gets pushed
to.
[ci:skip-build]: already built successfully in CI
The type was erroneously set as 'simple', and since we are setting
ExecStop we actually need to set RemainAfterExit to avoid running
ExecStop when the oneshot service runs. This is because nft returns/
exits pretty much immediately after applying the config.
fixes#2846
The unit name to kill pbsplash had a typo, and added a preset for sshd.
systemd didn't seem to match `phosh` or `gdm` to the correct unit,
unless they had `.service` added, so this was fixed.
Presets in this section were also sorted.
[ci:skip-build]: already built successfully in CI
This didn't actually seem to do anything, resulting in some weird stuff
being enabled by default even though we did not specify a preset for it
(e.g. see !5556)
Based on my interpretation of the systemd preset manpage, this file
should be parsed last. It says that if a unit name has a preset that
was already configured in some previously parsed preset file, then any
matches after do not apply. This means that the `disable *` should not
disable any previously enabled (in previous .preset files) units. When
the unit name is omitted from the `disable` command, it seems to be a no-op.
Fixes!5207
This causes systemd to get stuck restarting multipathd forever on boot if it runs on systems with no multipath hardware. When this happens, the system never finishes booting.
It doesn't seem like any UIs/devices enable the multipathd service by default in openrc, and that we just depend on multipath-tools for kpartx and stuff (and not the daemon that comes with it)
[ci:skip-build] already built successfully in CI
also remove the elogind specific patch to use systemd for brightness
changes
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
Note: the user services that the -systemd split pkg installs are not
enabled by default using systemd presets. None of them have 'Install'
sections, they appear to be mostly/all dbus activated instead.
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
- Removed systemd-timesyncd, already enabled by a preset installed by
the systemd package
- Removed default-disable.preset, it's already provided by the systemd
package
- Removed user services from system preset
These macros are based off of the upstream systemd RPM macros, but it
doesn't implement all of the macro functionality upstream. Initially
they will be used in the install scripts for apkbuilds that provide
systemd service unit files.
For example, a `$pkgname-systemd.post-install` script might have:
. /usr/lib/systemd/systemd-apk-macros.sh
systemd_service-post_install system sshd
And a `$pkgname-systemd.pre-deinstall` script might have:
. /usr/lib/systemd/systemd-apk-macros.sh
systemd_service_pre_deinstall user pipewire
One day maybe these could be upstreamed to systemd to provide some
apk/abuild compatible macros.
Co-authored-by: jane400 <pmos@j4ne.de>
The space here caused this install script to attempt to create a group
named '2' and add a user named 'sgx' to it.
[ci:skip-build] already built successfully in CI
Build abuild from upstream source and only apply the systemd split func
patch. The patch was also adjusted to use -systemd instead of -service
for subpackages
As systemd v256 switched to dlopen for a bunch of dependencies
(specified in a custom format), this is no longer auto-detected
by either abuild or boot-deploy. So we include kmod manually for udevd
to work correctly.
This fixes the "no screen" issue on pine64-pinephone.
[ci:skip-build]: already built successfully in CI
Explicitly generate qwayland-plasma-shell.h first, in order to fix:
In file included from /usr/include/PlasmaQuick/PlasmaQuick/PlasmaShellWaylandIntegration:1,
from /home/pmos/build/src/plasma-workspace-6.1.2/shell/panelconfigview.cpp:35:
/usr/include/PlasmaQuick/plasmaquick/plasmashellwaylandintegration.h:14:10: fatal error: qwayland-plasma-shell.h: No such file or directory
14 | #include "qwayland-plasma-shell.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Related: https://invent.kde.org/plasma/plasma-workspace/-/issues/132
[ci:skip-vercheck]
[ci:skip-build] times out after >3hr in gitlab CI
Apparently the patch url isn't stable(?) upstream, the checksum changed.
Since this is a simple 1 line patch, let's just include it in pmaports
This also changes kwin to use the more 'standard' pkgver used in other
packages forked for systemd support
The patches were put into the gitlab.com/postmarketos/systemd repo
and updated for stable-v256.
This also enables man pages, systemd-localed and localization support
via the compile flags.
[ci:skip-build] already built successfully in CI
PA is started automatically by its "autospawn" config thing, and it
works pretty well... if it crashes then it's automatically restarted if
needed, etc.
The included service/socket unit files never really worked,
PA started from systemd would always race with (and often to) PA autospawn.
The subpkg here also resulted in a packaging bug where both
pulseaudio-service and pw-pulse-service were installed at the same time,
because the `install_if` listed `pulseaudio`, and `pw-pulse` also
provides `pulseaudio`. The two unit things conflict with each other.
I did some initial investigation, and getting systemd to manage PA
seemed like too much work especially since autospawn is probably good
enough and we hope to move to pw audio later.
[ci:skip-vercheck]
Unfortunately there are some code paths that are required to support
socket activation, and they are only enabled at build time with
-Dsystemd=enabled. On the bright side, service/socket unit files are
included...
Also note that I disabled test on armv7 since they fail in our CI using
qemu on x86_64. They pass in Alpine on native armv7.
This changes it into a default disable.
`disable *` selects all units and hence overrides all previous presets.
Just using `disable` just changes the default unit enablement policy.
[ci:skip-build]: already built successfully in CI
For the `install_if` to work correctly, the subpackage should be named
after the main package that provides the app... in this case it's called
"rtkit"
[ci:skip-build] already built successfully in CI
[ci:skip-build] already built successfully in CI
xorg-server-common is a shared dep between xorg-server and xwayland, and
this tmpfile config is required for both to work. Without this tmpfile
config, Xwayland may fail to start. In the case of GNOME, this is a
fatal event.
This is required by systemd-vconsole-setup, which is currently
configured to run on boot (without kbd/loadkeys, the service crashes.)
[ci:skip-build]: already built successfully in CI
Set it to master_staging_systemd, and bypass the usual logic of looking
into pmaports.cfg and channels.cfg (of master branch!). This avoids
adding it to channels.cfg of the master branch.
Fix for:
In systemd-services.trigger line 14:
systemctl $cmd $service
^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
Should be =$pkgver-r$pkgrel instead of =$_pkgver-r$pkgrel. Otherwise CI
fails, and it is right, we do want to provide the very high version so
we don't install the regular package by accident if the regular package
gets upgraded before this forked version.
Let's put everything systemd related in an extra-repos directory, so it
is clear that the packages from here will end up in a separate, optional
binary package repository.
Add the dependency, so the systemd-services package gets built as part
of the bootstrap. Otherwise no service files will be installed, as the
individual service files get pulled in via install_if, and that only
works if a binary package is available.
This is a hack to configure utilisation clamping for gnome-shell. It
works by telling the scheduler that the gnome-shell process should run
with a much higher performance level. This improve animation performance
and general UI smoothness. A proper solution to have gnome-shell manage
this itself is in the works upstream.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
For systemd (and our own sanity) we need to do the /usr merge. This fork
of apk-tools includes the logic to support alpine packages like tar
which install the main tar binary to /bin and then a symlink to
/usr/bin/...
We should find a way to implement this in upstream apk-tools, and
continue pushing Alpine to also adopt the merged /usr model.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
alpine-base hard depends on openrc... Fork it to drop this.
We should eventually upstream this by having alpine-base depend on a
virtual pid1 or init-system subpackage which openrc and systemd can both
provide.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Update paths to keyboard configuration files to reflect PinePhone's
move from main to community device category.
[ci:skip-build]: already built successfully in CI
The full initramfs is now too big for the boot partition.
When building with the downstream kernel, use initfs-extra
to split the initramfs so it can fit again.
This is not an issue with mainline kernel since booting it
uses extlinux with lk2nd.
[ci:skip-vercheck]
Signed-off-by: Alexandre Messier <alex@me.ssier.org>
[ci:skip-build]: already built successfully in CI
Like most msm8974 devices, lk2nd is used to boot mainline linux on the
HTC One (M8).
Add it as a dependency of the mainline kernel build, so that it is built
when required. It can be flashed with 'pmbootstrap flasher flash_lk2nd'
while in the vendor bootloader fastboot mode.
Only extlinux mode is supported for mainline kernel, as otherwise the
initramfs is too big for the boot partition.
Signed-off-by: Alexandre Messier <alex@me.ssier.org>
To support the HTC One (M8), a new specific target is required
since it needs non-default values for mkbootimg.
Signed-off-by: Alexandre Messier <alex@me.ssier.org>
Add the imagis and 88pm886_regulator drivers to the initfs allowing the
software keyboard in the debug shell to work.
[ci:skip-build]: already built successfully in CI
Otherwise the service will be installed even if the mainline kernel is
selected.
Fixes: f59eac28b ("firmware-samsung-pxa1908: move openrc scripts to subpackage (MR 5688)")
Convert the device package to use U-Boot.
The U-Boot binary is gzipped and put into a U-Boot legacy uImage to
match what the factory bootloader's demands. The postmarketOS kernel,
initramfs and device tree are packed into a FIT and passed to U-Boot as
an initramfs.
Basically linux-postmarketos-marvell-dove but with fellow changes :
1. Added support for other marvell SoC
2. The local version has been changed to -postmarketos-marvell
3. Several redundant USB controller driver has been removed
4. CONFIG_SATA_MV is seted to y
5. fbdev is disabled
6. CONFIG_ZRAM_BACKEND_ZSTD it enabled
(due to kconfig config but i also enabled CONFIG_ZRAM_BACKEND_LZ4 and
others)
7. neon is enabled
Add soc-qcom-sm7125, firmware-xiaomi-miatoll, hexagonrpcd as dependency.
This necessary to make Wi-Fi, Sensors, GPU and modem work.
Split device package to support panel variants and take
maintainership.
eg25-manager 0.5.2 seems to be able to bring back the modem on its own again,
so this hack is no longer necessary.
[ci:skip-build]: already built successfully in CI
Successfully built and booted postmarketOS on Samsung Galaxy J4.
It's based on Exynos 7570, same SoC used by samsung-xcover4lte [1].
Currently, these are tested working:
- Boots from internal storage
- Display (console framebuffer is NOT working, kernel panics)
- Framebuffer (additionally with msm-fb-refresher to refresh the screen)
- Touchscreen
- USB Networking (RNDIS)
- Wi-Fi
Tested UI environments:
- XFCE 4
- Console (Kernel log doesn't show up because
`CONFIG_FRAMEBUFFER_CONSOLE` is not enabled, but enabling it panics
the kernel. This is a known issue for some Samsung devices, notably
samsung-crownlte [2].)
[1] https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Xcover_4_(samsung-xcover4lte)
[2] https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Note_9_(Exynos)_(samsung-crownlte)#Current_status
LXQt can control the display brightness. It doesn't save and restore it
over boots, however. In distributions with systemd this is handled by
"systemd-backlight@.service". For OpenRC the package brightnessctl offers
a service saving the state of the brightness at shutdown and reboot.
closes#3386
Needed to fix eduroam iwd on qcom laptots. This config option used to be enabled on v24.06.
[ci:skip-build]: already built successfully in CI
lock.sh is only reliable when used with i3wm, where we disable gpio_keys from
being handled by X/i3wm. When this is not done (e.g. when testing a different
X11 UI), the script becomes unreliable since the display turns on due to the
SCREENLOCK key being toggled, and therefore only the display=on case is ever
run.
Improve reliability of the script by basing the decision making on the
enabled/disabled state of the touchscreen instead.
Current pinephone images built pmbootstrap >= 3.0.0 don't boot on the
pinephone anymore. At least part of this must be the switch from GPT to
MBR that has been done by default in pmbootstrap. Set msdos explicitly
to revert this for the pinephone.
With Tow-Boot we could probably use GPT instead, but this should be a
well-tested, concious decision. Let's fix this regression first.
[ci:skip-build]: already built successfully in CI
This adds Xiaomi Pad 5, it uses a close to mainline kernel on 6.12.0
the firmware is packaged and supported, although hexagonrpcd is not working yet.
this is a continuation from
https://github.com/map220v/postmarket_xiaomi_nabu/tree/test
updating its config and updating its components.
i based the hexagonrpcd bringup from xiaomi-elish and google-sargo
[ci:skip-build]: already built successfully in CI
In addition to the pmos.debug-shell cmdline argument, add
pmos.usb-storage=<block-device> to set up the USB mass storage gadget by
default when going into debug shell. This allows building a special boot
image/option that directly exposes the storage for flashing, without having
to type in extra debug-shell commands.
Right now we have two similar implementations of setting up a USB mass
storage gadget, in init_functions.sh and as separate script for the
debug-shell. Given that init_functions.sh is available in debug-shell
anyway, unify both in a common setup_usb_storage_configfs() function.
Having this included in the initramfs debug-shell by default (without
installing postmarketos-mkinitfs-hook-debug-shell) also simplifies
recovery, since you can set up the USB storage for repairing the flashed
postmarketOS installation in case of boot failures. The size overhead is
minimal, since this has no extra dependencies.
Added a config file to /etc/unl0kr.conf.d/ to fix issue with unl0kr
being invisible during boot.
Commit-Msg-Tweaked-By: Oliver Smith <ollieparanoid@postmarketos.org>
BTRFS only supports online resizing. Right now we implement that by
temporarily mounting the file system, resizing it, and then unmounting it
again. But most of this is redundant since we mount the rootfs at /sysroot
immediately after.
Avoid this by splitting the file system resizing in offline resize (before
mount) and online resize (after mount) and resize BTRFS after mounting
/sysroot. For EXT4 we can either do offline resizing or online resizing.
Keep offline resizing for now for better compatibility with older kernels.
F2FS does not seem to support online resizing, so we need to keep the
functionality for offline resizing anyway.
Drop the splash for now, since it would introduce flickering on each boot.
We can restore it later if needed (ideally by adding a way to update the
splash message without restarting pbsplash).
Right now we use the resize2fs -f (force) option, which "Forces resize2fs
to proceed with the filesystem resize operation, overriding some safety
checks which resize2fs normally enforces." For example, this flag instructs
resize2fs to attempt resizing file systems with errors in some situations.
We primarily care about resizing the file system on initial boot, where we
shouldn't have any errors in the file system. For all other subsequent
boots, we shouldn't risk the filesystem data just to resize it again.
So let's drop the -f flag and only resize clean file systems.
At the moment, the root file system is only resized to span the entire
partition if we previously also resized the partition itself. However, if
a rootfs image without subpartitions is flashed to a pre-existing partition
this means that the installation only has very limited space available
without manual resizing.
Such a setup is used for devices using the "fastboot-bootpart" flasher
(e.g. asus-me176c), where boot and root images are flashed to two separate
partitions and the device boots directly from the boot partition.
Avoid this problem on these devices by always resizing the root file system
on each boot. All the resize tools exit early if the file system is already
expanded to the maximum size. It's faster to call resize2fs unconditionally
instead of manually checking if the file system needs resizing before.
Similar tooling like systemd-growfs also resizes unconditionally.
Fix the bug that prevented "pmbootstrap install" from working with
postmarketos-ui-gnome (not -mobile).
This bug has been here in pmaports for a long time, but until recent
changes in apk's resolver code, this did not fail (apk installed
gnome-extensions-app instead of gnome-mobile-extensions-app in that
scenario).
How it happened:
* postmarketos-ui-gnome has _pmb_recommends="gnome-extensions-app".
* pmbootstrap: pmb.install._install.get_recommends() works like this:
1. Look at the packages i in _pmb_recommends of the packages that
will be installed in "pmbootstrap install".
2. For each package j in _pmb_recommends of i:
2.1 Add all packages in j's _pmb_recommends to the list of
packages to be installed.
(2.2 Recurse by doing 1. with each package in j's _pmb_recommends.)
* In step 2:
* pmaports doesn't have a gnome-extensions-app (it's in Alpine, a
subpackage of gnome-shell).
* Therefore our gnome-shell-mobile fork gets looked at, which has a
gnome-mobile-extensions-app subpackage that provides
gnome-extensions-app.
* pmbootstrap looks at the _pmb_recommends of the gnome-shell-mobile
package, which has "gnome-mobile-extensions-app" (this is wrong,
it should be in postmarektos-ui-gnome-mobile instead and this patch
fixes this!).
* pmbootstrap adds the "gnome-mobile-extensions-app" to the list of
packages to be installed.
* The result is an "apk add" line that has "postmarketos-ui-gnome" and
"gnome-mobile-extensions-app" (and more packages), which results in a
conflict betwen gnome and gnome-mobile packages.
Fixes: issue 3360
[ci:skip-vercheck]: _pmb_recommends changes don't need package rebuilds
[ci:skip-build]: already built successfully in CI
lafrite has u-boot in SPI already
it also prevents lafrite from booting because pmbootstrap uses GPT partitioning now.
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Fixes the problem that BOOT partition is only 10 MB big while boot.img is 13 MB now.
Also heimdall was stuck at 7% with the sparse flag this gets fixed.
[ci:skip-build]: already built successfully in CI
As @grimler stated in MR !5887 (comment) [1], samsung-jackpotlte,
samsung-xcover4lte, and samsung-a30 share the same name for Wi-Fi
proprietary blobs, and packaged in their own specific firmware package.
The problem is these firmware packages put files in the same directory
as `firmware-samsung-a51`: /lib/firmware/postmarketos/mx140/. This opens
up the probability of conflicting blobs when multiple firmware packages
are installed on the system, resulting in wrong blobs used.
To ensure that this firmware is located in its own directory, move
`samsung-a51` blobs into its own subdirectory. This way, `a51` blobs
will stay intact whether multiple firmware packages are installed.
[1] https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5887#note_459185
Successfully built and booted postmarketOS on Samsung Galaxy A51. It's based on Exynos 9611 SoC.
Currently, these are tested working:
- Boots from internal storage
- Display (DECON driver needs to be patched. Included in the kernel package)
- Framebuffer (additionally with msm-fb-refresher to refresh the screen)
- Touchscreen
- USB Networking (RNDIS)
- Wi-Fi
Tested UI environments: XFCE 4 & Console.
Wiki: https://wiki.postmarketos.org/wiki/Samsung_Galaxy_A51_(samsung-a51)
Ensure postmarketos-base-nofde is built before this package, otherwise
bootstrapping this on a new stable branch fails. This does not need to
be backported, as postmarketos-base-nofde has already been built for
v24.12.
Related: https://builds.sr.ht/~postmarketos/job/1384748
Actually Xfce4 is capable to use the "draw-user-backgrounds" option of
"slick-greeter", applying the users wallpaper on the greeter.
However, as it turns out, the users background in pmOS Xfce4 is set at first
login of the user. Therefore, the greeters background is black at the first
boot.
Therefore set the greeters background to the default postmarketOS wallpaper.
Move the polkit-elogind into depends= instead of pmb_recommends=, so
packages depending on postmarketos-base-ui-gnome can build successfully
again. The previous fix only helped for "pmbootstrap install", this fix
will help for both cases.
Without this, e.g. postmarketos-base-ui-gnome-mobile fails to build:
https://builds.sr.ht/~postmarketos/job/1384469
[ci:skip-build]: already built successfully in CI
Add polkit-elogind to _pmb_recommends, to help apk resolve the polkit
depends again. Otherwise it fails with a conflict since recent changes
in apk's dependency resolving code.
Fixes: issue 3349
[ci:skip-vercheck]: pmb_recommends change doesn't need rebuild
[ci:skip-build]: already built successfully in CI
Change <=…-r0 to <=…-r999 as it was just bumped to fix a build error and
might be bumped again in the future. I've also tried just removing -r0,
but that results in a conflict.
The Linux stable team merged v6.12 into linux-rolling-stable as
of Thursday, so here's a new release.
This release cycle was very quiet with small fixes.
The ttynull driver was enabled in the configuration to fix a bug
where userspace would start with no stdio open.
A patch that made the fuel gauge driver compatible with v6.10
was dropped.
Patches from MSM8916 and MSM8953 were re-picked, to include the change
from strlcpy to strscpy and to remove duplicate q6voice entries in a
Makefile.
Some flashlight and charging patches were staged.
The thermal nodes were sorted by the thermal sensor to match
other platforms.
Bluetooth, camera, call audio, display, USB, I2C, eMMC, modem, video
acceleration, WiFi, haptics, NFC, sensors, and touchscreen should
work and be slightly broken like before.
After commit 8335d050bf24977afefee6612dd347abd555bc53 in pmbootstrap the
partition table now defaults to GPT instead of MBR. This breaks booting
on Amlogic devices for the following reasons:
* On set-top boxes: downstream U-Boot most likely does not have GPT
support
* On boards where we install mainline U-Boot as BL33 on eMMC/SD: the
bootROM checks for an `@AML` image header at offset 512 (second LBA),
which means we are basically stuck on MBR
Some Amlogic boards have U-Boot + the proprietary Amlogic firmware
stages in SPI flash (mainly the Libre Computer boards do), which means
they can use GPT, because the firmware is simply not stored on eMMC/SD.
For that reason I chose not to change the partition table on those.
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Fix TypeError when RuntimeError is thrown
Example:
FAILED testcases/test_device.py::test_aports_device -
TypeError: can only concatenate str (not "PosixPath") to str
Merge the following Samsung Galaxy Grand Prime devices into
samsung-fortuna:
- samsung-fortuna3g
- samsung-fortunaltezt (firmware only due to armv7 architecture)
- samsung-gprimeltecan
- samsung-grandprimelte (was samsung-gprimeltexx)
Resolves deadlock between Rockchip crypto hardware and dm-crypt causing
kernel panic during disk decryption on devices like PinePhone Pro.
- Disables RK3399 hardware crypto engine (CONFIG_CRYPTO_DEV_ROCKCHIP)
- Enables ARM64 CPU crypto extensions for AES/SHA
- Makes core crypto components built-in instead of modules
Fixes: kernel panic in queued_spin_lock_slowpath() when accessing
encrypted devices.
[ci:skip-build]: already built successfully in CI
There might be additional kernel modules needed for the USB UDC to show up.
This used to work fine, but broke when the initramfs was unified with the
minimal one. We need to load modules/start udev before setting up USB.
Fix this by duplicating the setup calls in both init.sh and init_2nd.sh.
Both calls already have checks to allow calling them multiple times,
so we don't need to handle the initramfs-extra case in a special way.
[ci:skip-build]: already built successfully in CI
Split -nofde into a separate package to resolve the cyclic depenency:
postmarketos-base -> postmarketos-initramfs -> postmarketos-base-nofde
Fixes: issue 3236
[ci:skip-build]: already built successfully in CI
Fill out makedepends, so pmbootstrap and bpo know that these packages
need to be built before building postmarketos-cros-common, because it
has subpackages depending on these packages. Without this,
bootstrapping v24.12 currently fails:
https://builds.sr.ht/~postmarketos/job/1381582
This is intended behavior, abuild works the same way:
https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10138
[ci:skip-build]: already built successfully in CI
This is a generic kernel for qcom laptops (sc8280xp & x1e), meant to
replace the lenovo-21bx kernel for the x13s.
- Uses johan_defconfig as base, and includes Minecrell's pmos.config
- Adds some extra kconfig for supporting virtualization
As of upower 1.90.5, it is possible to configure upower to not take an action
when the battery capacity is reported as critically low. Since the Nokia N900
now monitors its battery capacity using udev scripts, which is more accurate
than upower's calculation, enable the new ignore feature for the N900.
The bq27200 fuel gauge depends on its battery-backed memory for capacity
reporting. If the supply is off for some time, the fuel gauge's last known
capacity is reset, after which a capacity value can only be read after a
full charge cycle. Thus, most of the time, as used on the Nokia N900, the
reported percentage cannot be relied on for making power-off decisions on
battery low conditions, e.g. through UPower.
However the fuel gauge can very accurately detect and report a low battery
condition internally, even if the reported capacity is incorrect, e.g. when
it has been reset. The low battery condition is reported by the kernel via
capacity_level in sysfs, and also generates uevents.
So we can implement safe battery shutdown by requesting the kernel to more
regularly polling for status changes, then performing an immediate shutdown
when the capacity_level is reported as Low and the device is not charging.
The deviceprofile is now in a tagged sxmo release.
The conky issue will be mentioned in wiki for users to manually disable, until
upstream allows toggling it.
It's possible that additional sources have been made to an APKBUILD
which are unstaged, but if the hunks adding those sources haven't been
staged either then it doesn't make sense to fail on this.
Use git show to get only the staged hunks for the APKBUILD.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Fix the following error during "pmbootstrap install":
ERROR: unable to select packages:
sudo-1.9.16_p1-r1:
conflicts: doas-sudo-shim-0.1.1-r1[cmd:sudo=1.9.16_p1-r1]
breaks: doas-sudo-shim-0.1.1-r1[!sudo]
satisfies: postmarketos-base-38-r0[sudo-virt]
postmarketos-base-nofde-38-r0[sudo-virt]
doas-sudo-shim-0.1.1-r1:
conflicts: sudo-1.9.16_p1-r1[cmd:sudo=0.1.1-r1]
satisfies: postmarketos-base-doas-38-r0[doas-sudo-shim]
postmarketos-base-38-r0[sudo-virt]
postmarketos-base-nofde-38-r0[sudo-virt]
How the error gets triggered:
* postmarketos-base depends on sudo-virt. During "pmbootstrap install",
pmbootstrap has to resolve this to a sudo implementation (sudo, doas,
...).
* pmbootstrap does this by looking at the packages that get installed
at the same time. Before this patch we did not install doas-sudo-shim
directly through _pmb_recommends, only indirectly through a
postmarketos-base-doas subpackage that pulls doas-sudo-shim in via
install_if.
* pmbootstrap cannot look at install_if as it resolves dependencies,
so it has to pick one and goes for "sudo".
* pmbootstrap tells apk to install a list of packages including "sudo",
and because apk also resolves install_if correctly, the solver fails
at the conflict between "doas-sudo-shim" and "sudo". (This only fails
since apk-tools-static 2.14.6-r0, apparently beforehand apk just
installed "doas-sudo-shim" in this scenario.)
Teaching pmbootstrap to look at install_if while resolving packages
would be one way to fix this. But it would be a lot of effort, not
feasible to quickly stop the problem at hand that breaks "pmbootstrap
install" for all edge installs. IMHO it is not worth implementing this
at all in pmbootstrap, as it is just supposed to do some more or less
basic package resolving until apk takes over and does it properly.
Put doas-sudo-shim in _pmb_recommends so pmbootstrap knows that this is
the sudo implementation we want without looking at install_if.
Remove the now obsolete postmarketos-base-doas subpackage. This will
lead to doas-sudo-shim getting removed for old installations on upgrade,
but it can easily be installed back (doas add doas-sudo-shim). I'll make
an edge post about it and put it in the v24.12 release notes. If we
don't remove it here, we would need to keep this legacy subpackage
around forever and I'd rather avoid that to reduce maintenance effort.
Another alternative to this was removing sudo-virt from depends="". But
that would lead to sudo getting uninstalled for users upgrading from
old releases from before we had doas in pmb_recommends, so I've decided
against it.
Fixes: pmaports issue 3340
The Google Pixel 3a automatically appends console=null to the command
line. In the kernel, the preferred console is set to ttynull. Since
ttynull is not automatically enabled, a warning is currently emitted:
[ 0.909853] Warning: unable to open an initial console.
This also causes stdin, stdout, and stderr to be missing from the init
process.
In the busybox implementation, syslogd creates the /dev/log socket and
opens /dev/kmsg. This happens just before daemonizing, which opens
/dev/null and aliases stdin, stdout, and stderr to it. After daemonizing
and potentially closing the socket, stdin is aliased to the socket to
save stack memory. If the program starts without stdin under Linux, the
socket gains the constant STDIN_FILENO file descriptor, which is cleared
when daemonizing.
Syscalls when the 0, 1, 2 file descriptors aren't open:
socket(AF_UNIX, SOCK_DGRAM, 0) = 0
openat(AT_FDCWD, "/dev/kmsg", O_WRONLY|O_LARGEFILE) = 1
openat(AT_FDCWD, "/dev/null", O_RDWR|O_LARGEFILE) = 2
Enable the CONFIG_NULL_TTY option and update the configuration to allow
the kernel to open stdin, stdout, and stderr for the init and (by
inheritance) syslogd processes. It's technically an expert option but
isn't enabled by default (and can be enabled in config fragments).
Closes#3269
[ci:skip-build]: already built successfully in CI
The main goal of switching LightDM to slick-greeter is to ease
enabling/disabling autologin. With "lightdm-settings" installed, there
is an administration/settings GUI "Login Window" available that allows
among others to configure autologin. Contrary to its general purpose
name, it works on LightDM greeter "slick-greeter" only.
[ci:skip-build]: already built successfully in CI
Use install "-t" option, avoiding to repeat the file name and allowing to add
more than one file per command. Additionally sort the commands alphabetically
per path.
Exception is the lightdm autologin config file because it does a file renaming.
Put this command to the end.
bq27xxx_battery has a check for status flags in order to detect changes
and report to userspace. However, the cached flags are updated before
checking for changes, hence no flag-related events are ever sent. This
patch fixes this behavior, and has been sent upstream.
[ci:skip-build]: already built successfully in CI
Add a workaround so the kernel compile output is not silent (which leads
to pmbootstrap aborting the build). This will be fixed once upgrading to
linux >= 6.2.
Related: pmaports issue 1990
[ci:skip-build]: already built successfully in CI
In linux-postmarketos-qcom-msm8916 this is fixed properly thanks to a patch
from Jakob Hauser. The cmdline parameter is no longer necessary, and just
causes the display to be horizontally flipped again.
[ci:skip-build]: already built successfully in CI
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
[ci:ignore-count]: We meant to change many packages
[ci:skip-build]: already built successfully in CI
Linux 4.14.186 has no ZSTD support and is therefore too old to have full
support for our default ZRAM configuration. ZRAM will likely still work,
but fall back to the default compression method. This is not something we
can actively test or support, so drop the pmb:kconfigcheck-zram.
[ci:skip-vercheck]: no rebuild needed
Linux 3.18.14 has no ZSTD support and is therefore too old to have full
support for our default ZRAM configuration. ZRAM will likely still work,
but fall back to default compression method. This is not something we
can actively test or support, so drop the pmb:kconfigcheck-zram.
[ci:skip-vercheck]: no rebuild needed
main/postmarketos-base/rootfs-etc-conf.d-zram-init configures zstd as our
default ZRAM configuration, but the kconfigcheck only checks for LZ4 at the
moment. Because of this some of our kernels don't actually have ZSTD
support enabled and end up using the default compression algorithm.
For Linux >=4.18 we should enable CONFIG_CRYPTO_ZSTD to enable ZSTD support
for ZRAM.
In Linux >=6.12 the configuration was changed to CONFIG_ZRAM_BACKEND_ZSTD.
This requires manual edits while upgrading, otherwise only LZO support will
remain enabled.
Checking for >=3.14.0 additionally does not make any sense, because the
kconfig check should not be enabled for kernels that cannot satisfy our
minimum requirements.
Describe this properly in kconfigcheck.toml to ensure kernels are
configured correctly.
The following kernels are currently missing the correct options:
config-htc-flounder.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-amlogic.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-grate.armv7: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-msm8974.armv7: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-sc7280.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-sm6115.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-sm6350.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-purism-librem5.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
The following kernels are too old to support CONFIG_CRYPTO_ZSTD:
config-samsung-jxelte.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-volla-mimameid.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
Many parts of the Linux desktop (apps, tools, scripts, etc) all expect
xdg-open and friends to be installed.
Since these utilities are tiny and (usually) ubiquitous, let's make sure
our UIs all depend on them.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
We haven't had kernels in main/ for soon three years[1], so no need
to bother checking this location.
[1]: See commits 47d8f823..8f24fe3a
[ci:skip-build]: already built successfully in CI
Add qbootctl as dependency msm-firmware-loader needs it
for A/B devices like xiaomi-daisy and xiaomi-tissot.
[ci:skip-build]: already built successfully in CI
init_functions.sh makes use of the mass_storage and acm USB gadget
functions for error reporting, but the necessary kernel modules are not
included in the initramfs at the moment. Because of this, the functionality
works only on kernels where all these USB gadget functions are built-in and
not built as modules.
Add the missing modules and fix the sort order while at it.
[ci:skip-build]: bug in CI prevents build testing armv7, succeeded locally
The current test script disallows these kinds of comments:
deviceinfo_some_variable="some_value" # an inline comment
Since deviceinfo is essentially a shell script, it does make sense to
allow inline comments. It is relatively simple to implement as well, by
adjusting the regex.
[ci:skip-build]: already built successfully in CI
Patch adding LG G4 (H815) support got upstreamed in v6.12-rc1 mainline
kernel (it's slightly different than the patch used here).
Add python3 to makedepends (required from v6.10-rc1
0fddd045f88e ("drm/msm: generate headers on the fly")).
Signed-off-by: Petr Vorel <pvorel@suse.cz>
The project access token disappeared (maybe expired?), let's avoid
hardcoding this and put it in a CI variable instead.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Tested working on C330. I can drop the patch for 6.11 regression since
that is fixed now. All the normal stuff works, nothing broken as far as
I can tell. Default config options chosen with pmbootstrap kconfig
migrate.
pmbootstrap 3.0.0 uses GPT partition table by default, which breaks booting
on all the devices using the lk2nd bootloader. The current version of lk2nd
supports GPT only for the eMMC, while subpartitions and SD cards must be
partitioned with MBR. GPT support was present in the legacy branch of
lk2nd, but was dropped at some point because of poor code quality.
Fix the regression for now by reverting back to the old msdos (MBR)
partition table. We can revert this again later when lk2nd restores support
for GPT.
Generated with
$ for d in $(grep -R linux-postmarketos-qcom-msm8916 | grep -Eo 'device-[^/]+' | sort -u); do \
echo -e '\n# lk2nd does not support GPT for subpartitions/SD cards yet\ndeviceinfo_partition_type="msdos"' \
>> device/*/$d/deviceinfo && pmbootstrap checksum $d && pmbootstrap pkgver_bump $d; done
[ci:ignore-count]
[ci:skip-build]: bug in CI prevents build testing armv7 and aarch64, so
Clayton did the test locally for those archs
This is needed for completely functional BT on the 6.12 kernel we
package. The bt fw file will be in the next (december) release of
linux-firmware, so in the meantime it's fetched/packaged here. This will
need to be dropped when the next linux-fw package upgrade is released.
Tested on google-hayato. I also cleaned up the config a bit since the
collabora defconfig had a few weird things set. Zram now works as
expected because of this.
Loaded 100 of 773 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.