Run native binaries for extracting / packing various archives if they
are installed in the native chroot when using the crossdirect
compilation method, instead of having them go through QEMU. The
resulting extracted/packed files should always be the same but this is
significantly faster.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6763
This port is exclusively for AArch64 TV boxes. Given that there is an
Amlogic TV box port for Meson8 (ARMv7) in the works, it doesn't make
sense for the AArch64 port to have that generic name anymore. So rename
it to reflect which Amlogic SoCs are suitable for it.
[ci:skip-vercheck]
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6744
For one of the urllib responses, we need to make it a bit more explicit
that urlopen returns a bytes object - as per Python documentation. Not
sure why mypy needs some extra help there.
Checked with "mypy --strict".
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6719
Tested on odroid-xu4 and samsung-n2awifi.
Changes include:
- Add driver for Wacom W9000-series touchscreen pens (@Eisenbahnfan)
- Fixes and enhancements for the Galaxy Tab Pros, {n2a,v1a}wifi (@Eisenbahnfan):
- penabled touchscreen on V1A WiFi
- DVFS for memory
- fix sensors sometimes not starting on V1A WiFi
- fix display lags due to frequency changes
- fix cpus stuck on low frequency level
- Re-implement support for allocating a non-coherent DMA region (@Eisenbahnfan)
- Add driver for the AMS as3668 led, and enable it on manta (@LaT3St)
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6756
[ci:skip-build]: already built successfully in CI
Hopefully these can be merged in the repo we track, but let's add them
to pmaports in the meanwhile.
Fixes issue where allocated, but non-set memory is used, which gives
unpredictable behaviour.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6746
[ci:skip-build]: already built successfully in CI
Jenneron sent me his Trogdor/Lazor (Acer Chromebook Spin 513-1H) nearly
a year ago, as he doesn't have time to work on it anymore... I didn't
have time to do it either (until now).
I updated maintainer to myself, removed patches that have been merged
and bumped the kernel to newest LTS as of today.
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6740
[ci:skip-build]: already built successfully in CI
NFS allow the user to mount distant resources locally, and this is
specially great for mobiles devices, with limited disk space. The user
can couple this with FS-Cache, to limit the network impact. Kerberos
bring security to the NFS mounting.
This new category "netmout" make sure the kernels are built to support
this.
Mirror some of the changes to the Pixel 3a:
device-google-sargo: add sensors support (MR 5329)
google-sargo: add gpi to modules-initfs to fix fde (MR 5347)
google-sargo: do not enable HexagonRPCD on every upgrade (MR 5400)
google-sargo: stop HexagonRPCD on suspend (MR 5400)
google-sargo: make necessary userspace changes for kernel v6.10.2
device-google-sargo: remove nonfree_firmware subpkg (MR 6107)
device-google-sargo: Fix hexagonrpcd on systemd (MR 6147)
device-google-sargo: install hexagonrpcd conf to new location (MR 6217)
device/*: explicitly depend on openrc if install scripts call rc-update
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6718
It lets us move the variables in cmdline.txt to
deviceinfo_kernel_cmdline. We can thereafter drop the cmdline.txt file
entirely.
By setting deviceinfo_generate_cmdline_txt we tell boot-deploy to
generate /boot/cmdline.txt from deviceinfo_kernel_cmdline. boot-deploy
can then also add information about partition UUIDs to the cmdline,
which helps postmarketos-initramfs find the correct partitions.
Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3716
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6630
[ci:skip-build]: already built successfully in CI
It lets us move the variables in cmdline.txt to
deviceinfo_kernel_cmdline. We can thereafter drop the cmdline.txt file
entirely.
By setting deviceinfo_generate_cmdline_txt we tell boot-deploy to
generate /boot/cmdline.txt from deviceinfo_kernel_cmdline. boot-deploy
can then also add information about partition UUIDs to the cmdline,
which helps postmarketos-initramfs find the correct partitions.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6630
It lets us move the variables in cmdline.txt to
deviceinfo_kernel_cmdline. We can thereafter drop the cmdline.txt file
entirely.
By setting deviceinfo_generate_cmdline_txt we tell boot-deploy to
generate /boot/cmdline.txt from deviceinfo_kernel_cmdline. boot-deploy
can then also add information about partition UUIDs to the cmdline,
which helps postmarketos-initramfs find the correct partitions.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6630
It lets us move the variables in cmdline.txt to
deviceinfo_kernel_cmdline. We can thereafter drop the cmdline.txt file
entirely.
By setting deviceinfo_generate_cmdline_txt we tell boot-deploy to
generate /boot/cmdline.txt from deviceinfo_kernel_cmdline. boot-deploy
can then also add information about partition UUIDs to the cmdline,
which helps postmarketos-initramfs find the correct partitions.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6630
It lets us move the variables in cmdline.txt to
deviceinfo_kernel_cmdline. We can thereafter drop the cmdline.txt file
entirely.
By setting deviceinfo_generate_cmdline_txt we tell boot-deploy to
generate /boot/cmdline.txt from deviceinfo_kernel_cmdline. boot-deploy
can then also add information about partition UUIDs to the cmdline,
which helps postmarketos-initramfs find the correct partitions.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6630
It lets us move the variables in cmdline.txt to
deviceinfo_kernel_cmdline. We can thereafter drop the cmdline.txt file
entirely.
By setting deviceinfo_generate_cmdline_txt we tell boot-deploy to
generate /boot/cmdline.txt from deviceinfo_kernel_cmdline. boot-deploy
can then also add information about partition UUIDs to the cmdline,
which helps postmarketos-initramfs find the correct partitions.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6630
Fix the following error that now appears as the systemd-enabled
gnome-keyring package in pmaports will not be built for armhf:
main/postmarketos-ui-xfce4/APKBUILD: package 'gnome-keyring' from _pmb_recommends not found for arch 'armhf'
This happened, because before this patch pmb.helpers.package.get() would
return the pmaports version of the package (!armhf) instead of the one
in the binary packages from alpine (alpine one is available for armhf),
and then later check the arches of the returned package and fail because
it is not enabled for armhf.
With the patch, the binary package from alpine repos is returned as the
pmaports one is ruled out due to not being available for armhf. The
latter arch check is not necessary anymore and gets removed.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6710
We currently don't build systemd for armhf anymore. Disable all other
packages in the systemd repo too, as these can't be built without the
systemd dependency.
FWIW all of Phosh, Gnome Mobile and Plasma Mobile already have major
packages not building for armhf so they couldn't be used on this arch
anyway.
Once pmb issue 2618 is resolved, we can re-enable systemd for armhf.
Co-authored-by: Oliver Smith <ollieparanoid@postmarketos.org>
Related to !6637Fixes#3783
[ci:skip-build], [ci:skip-vercheck]: changing arch= only
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6710
PostmarketOS now uses ncm instead of rndis, so update script accordingly.
Unfortunately usb networking does not work even after this change when
I test on dream2lte, so this needs further debugging.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6706
[ci:skip-build]: already built successfully in CI
Notes:
* In general, keybindings are similar to the existing i3 configuration for
the Nokia N900
* Power key and lock switch enable/disable the screen
* The keypad is always lit (dimly) when the screen/touch are active and is
turned off at other times
* The font can be increased/decreased in foot with Ctrl+Up/Down arrow
* The status uses the configuration and feed generator from i3 (i3blocks)
* After two minutes of idle, the screen and touch sensor will be disabled
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6714
[ci:skip-build]: already built successfully in CI
These devices have DRM through the omapdrm kernel driver in mainline.
However, they do not have GPU acceleration, so programs/stacks requiring
GL(ES) will not work. sway and other wlroots-based stacks work well when
WLR_RENDERER=pixman is set.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6714
This is a workaround for pmb#2618, basically.
To build systemd with BPF support (so things like unpriv. nspawn work),
we have to install linux-stable-dev to get a special header(vmlinux.h).
This kernel (linux-stable) isn't build in Alpine for armhf. Normally
that's not a problem, we could just add linux-stable-dev conditionally
to the makedepends, right? No... not possible until pmb#2618 is fixed.
Given this arch is used by only 3 devices in testing (the rest are in
`downstream` or `archive`), I think it makes sense to disable systemd on
this arch until someone has the motivation to fix the pmb bug.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6637
[ci:skip-build]: already built successfully in CI
Starqltechn is a Samsung Galaxy S9 phone running on sdm845 SoC.
Since SDM845 is well supported, the phone has potential to get more
features in the future with less development effort.
Device is running linux-postmarketos-qcom-sdm845 kernel, with
charger, fuelgauge, haptics, calls, mobile data supported.
This make the phone usable with basic scenarios.
Moving to community to increase phone visibility and to attract new
developers and users.
[ci:skip-vercheck]: no changes to packages
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6493
Avoid mount failure due to the possibility of the kernel being built
with vfat as a module (CONFIG_VFAT_FS=m) by explicitly trying to probe
the vfat module before trying to mount.
~ # mount /dev/loop0 /tmp/logs
mount: mounting /dev/loop0 on /tmp/logs failed: No such file or directory
~ # modprobe vfat
~ # mount /dev/loop0 /tmp/logs
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6679
[ci:skip-build]: already built successfully in CI
Previously, waveform information was provided by maintainer. Since every
device panel is slightly different, waveform information is actually
available on the device in a specific partition (partlabel=waveform).
We thus use the device waveform information instead of the less
appropriate generic binary. We do this by having an initd script extract
and prepare the binary from the partition using hrdl's scripts. The
rockchip_ebc module expects both ebc.wbf and custom_wf.bin under
/lib/firmware/rockchip. Thus, if those files are not detected, the initd
runs the necessary operations, regenerates with mkinitfs, and reloads
rockchip_ebc.
gpio_rockchip is also added to modules-initfs as the kernel now compiles
it as a module
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6667
[ci:skip-build]: already built successfully in CI
Uses patchset from hrdl rather than m-weigand. It was rebased against
v6.15 by myself, from v6.15_rc3. hrdl rebased m-weigand's patchset from
v6.12 and improved upon it.
Much like linux-rpi, source code is generated by first using upstream
linux source code, patched with minor release patchset. The PineNote
downstream patches are then applied.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6667
power-profiles-daemon is platform specific and tuned does more generic
system tuning. Both provide the power-profiles-provider virtual package,
and users can remove tuned-ppd if they want to switch back to
power-profiles-daemon, which has a higher priority.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6599
[ci:skip-build]: already built successfully in CI
power-profiles-daemon is platform specific and tuned does more generic
system tuning. Both provide the power-profiles-provider virtual package,
and users can remove tuned-ppd if they want to switch back to
power-profiles-daemon, which has a higher priority.
[ci:skip-vercheck]
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6599
power-profiles-daemon is platform specific and tuned does more generic
system tuning. Both provide the power-profiles-provider virtual package,
and users can remove tuned-ppd if they want to switch back to
power-profiles-daemon, which has a higher priority.
[ci:skip-vercheck]
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6599
It seems that pmbootstrap overwrites /etc/fstab with its own contents
after the post-install scripts have already run. Mount /efs in the
samsungipcd startup script instead.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6644
[ci:skip-build]: already built successfully in CI
Having the camera driver in the kernel causes a hangup in wireplumber
when it tries to open a certain /dev/video* device. These camera devices
are not used on postmarketOS anyway, and some of the config options
required for working camera have already been disabled, so just disable
the rest for good.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6644
$ pmbootstrap kconfig check postmarketos-qcom-msm8226
[19:19:41] WARNING: config-postmarketos-qcom-msm8226.armv7: CONFIG_UDMABUF should be set (category:default)
[19:19:41] WARNING: config-postmarketos-qcom-msm8226.armv7: CONFIG_BPF_JIT should be set (category:input)
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6673
AKMS builds modules in a sandbox using bubblewrap. Bubblewrap
unfortunately does not work in chroot environment, thus breaking
pmbootstrap. While a PR has been proposed upstream, history shows that
upstream takes a while to consider PRs. Thus, to unblock usage of AKMS,
this adds a patched version that allows disabling of sandbox using
`--no-sandbox` argument or by adding `use_sandbox=false` to
`/etc/akms.conf`. When building in chroot environment, sandboxing is
automatically disabled.
The aport handles conflicts with akms by setting `pkgver=9999$_pkgver`,
thus always overriding Alpine's package.
Upstream PR: https://github.com/jirutka/akms/pull/19
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6604
ClockworkPi's uConsole needs a few out-of-tree drivers to work that are
usually introduced through patches against raspberry Pi's kernel. To
reduce maintenance overhead, this MR drops
linux-clockworkpi-uconsole-rpi in favor of integrating the missing
drivers via AKMS and using linux-rpi directly. This will also allow
easier updating of the drivers, and avoid having to maintain a seperate
kernel aport.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6604
Remove the systemd-specific MOTD that says it is still in preview.
v25.06 is about to come out, the first stable release with systemd!
Any future adjustments to make it use fancy ascii colors etc. should be
made in postmarketos-base instead.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6669
[ci:skip-build]: already built successfully in CI
This is needed by some(all?) Xwayland implementations too, so don't make
installing it exclusive to having the actual X11 xorg-server installed.
This fixes an issue where Xwayland doesn't work on COSMIC.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6658
[ci:skip-build]: already built successfully in CI
These options are things that other required kconfig depend on, found
when creating a new config from scratch and noticing a few required
kconfig wasn't making it into the final config.
I don't expect this to have any impact on existing kernel packages that
already pass the kconfig check, because they would already need to have
these options enabled.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6641
This test is apparently wrong a lot now, so let's disable it. Audio
apps should inhibit sleep/suspend on their own, or worst case you can do
something like `systemd-inhibit <audio app>`.
We still want sleep-inhibitor around for now to inhibit sleep/shutdown
when an SSH client is connected or when apk is running.
Fixes#3745
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6612
[ci:skip-build]: already built successfully in CI
These failed to build in v25.06 because they use packages during the
build that are only listed in depends, not in makedepends. pmbootstrap
is more strict about it these days, so fix it.
[ci:skip-vercheck]
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6626
[ci:skip-build]: already built successfully in CI
gitflic.ru broke something (due to anti-bot protection?) so that
release download URLs are not accessible for automated services
even though they can be downloaded in a browser. I'll talk to
their support, but for now host file somewhere else.
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6625
[ci:skip-build]: already built successfully in CI
pmbootstrap only installs makedepends when building packages, not the
depends as it did in the past. Adjust this package to fix:
>>> firmware-samsung-a6lte: Entering fakeroot...
/usr/bin/abuild: line 21: can't open /lib/firmware/brcm/brcmfmac43456-sdio.bin.zst: no such file
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6617
[ci:skip-build]: already built successfully in CI
Configure the new keyboard Stevia to have arrow keys by default in the
terminal. The previous default terminal Squeekboard had separate arrow
keys as well.
While it is possible to move up/down/left/right with Stevia after
pressing the space bar and moving the finger into a given direction, I
found that it:
* Is less precise (e.g. going up exactly 1 command in the terminal,
which is my main use case, requires some effort to not go up 2 or 3
commands by accident).
* Takes longer to do this action vs. having a separate button (you need
to press space for ~a second until it goes into that special movement
mode and then take more time to carefully move where you want, a
simple button press is much quicker).
* I saw other users note on Mastodon that moving down is cumbersome for
them, given that there is not much space towards the bottom of the
screen below the space bar.
Having a lot of buttons in the list is fine IMHO, they can be scrolled
through quickly by swiping left and right.
Related: https://fosstodon.org/@phosh/114026426425496074
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6609
[ci:skip-build]: already built successfully in CI
On a merged /usr system, this results in a broken symlink since
sbin/udevd is really usr/sbin/udevd, and usr/sbin/../usr/lib/ is not a
real thing. This should have no effect on unmerged /usr systems, since
sbin/../../usr/lib/.... is still a correct (if ugly) path.
It's quite difficult to create a relative symlink for these things
that works reliably on a merged AND unmerged /usr install, so for now
I'm going to make the symlink source path absolute so that we can be
confident it'll work on either type of installation, and we can revisit
making them relative after usr merge is done/deployed on all installs.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6598
That's the best i came up with without changing the provider priorities
in Alpine upstream. This would also work but since p-o-s- self-describes
it self as the secondary choice for Phosh's OSK I chose this.
> Stevia is an alternative keyboard for Phosh. It can replace the default OSK
> squeekboard.
To switch from our default away:
apk add !postmarketos-ui-phosh-default-osk <squeekboard/phosh-osk-stub>
If you then want to switch again:
apk add <new osk> !<current osk>
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6605
[ci:skip-build]: already built successfully in CI
This isn't needed anymore as now we build each package only once:
* Now we build a systemd-stage0 package first, against which we build
dbus and polkit.
* The proper systemd package gets built against these afterwards.
Doing it this way simplifies things a lot:
* Can do the bootstrap iteratively, instead of only in one go (and if it
fails having to start all over again).
* Makes pmbootstrap and bpo easier to maintain as we can drop this
bootstrap logic.
* CI works as expected again when modifying multiple packages that would
need to be bootstrapped.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6440
This change makes the zram_swap service depend on a deviceinfo being
present in the rootfs (which may not always be the case, e.g. when
building an image with mkosi), and it replaces the ExecStartPre with
a dependency on modprobe@zram.service so that modprobe is only called
once if other services happen to also depend on this module (which is
unlikely, but a nicer way to handle this)
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6566
This splits off two new subpackages in postmarketos-base, allowing for
tools (e.g. mkosi) to build a very small "postmarketOS" rootfs.
postmarketos-base depends on these two new packages, so there should be
no functional change outside of enabling this specific use case.
The versioned replaces is meant to fix installing this new package on
existing installs. In some cases apk installs this package *before*
installing the `postmarketos-base-systemd` update that accompanies this
patch.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6565
The rational behind this is no actual functionality is lost, we just
gain the ability to now run Rust drivers (if they come out/we develop
them). It should be stable enough since Android manufacturers switched
to Clang a long time ago.
Currently, I foresee no drawbacks with this change.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6541
The UCM for some devices, such as MT8192 Chromebooks, relies on the
alsactl save/restore service to initialize default audio mixer settings.
Without this, the audio server is unable to control the sound card.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6556
[ci:skip-build]: already built successfully in CI
Some Wayland compositors (tested with GNOME) are broken because of the
mediatek DRM driver wrongly announce AFBC on SoCs w/o AFBC displaying
support.
Pick a patch from mailing list to fix this issue.
Test is done on a kodama with google-kukui generic port and GNOME Shell
recipe.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6589
[ci:skip-build]: already built successfully in CI
"pmb:gpu-accel" is deprecated now, replace it with "pmb:drm"
Set "pmb:drm" for UIs to hide them for installations
without DRM support (mostly downstream).
This also bumps the minimum required version for pmbootstrap, since it
requires pmb to support the renamed variable. 2.4.0 is the first
release with such change.
Closes#2999Closes#1481
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6419
[ci:ignore-count]: The MR just includes many packages.
[ci:skip-vercheck]: Changes don't affect built packages.
[ci:skip-build]: already built successfully in CI
The abuild package has been forked to temp/abuild and
extra-repos/systemd/abuild in the past. The systemd one is legacy from
the initial systemd repo bootstrap method that is currently broken and
will be replaced soon (see MR 6440). While the new one is not ready yet,
this package is currently not useful so remove it to fix the failing
upstream-compat check (currently it is on a different version than
temp/abuild).
[ci:skip-vercheck]: just removing a comment in temp/abuild
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6573
[ci:skip-build]: already built successfully in CI
Since non-booting and non-packaged devices were merged into one list, any
device that was listed as booting but wasn't packaged would get detected
as non-booting. That created a loop where to pass CI one would have to set
packaged = yes, which they shouldn't do until the port has actually been
merged, which they can't do unless it passes CI...
Now the section has been split into two sub-sections, thus the non-booting
section is separate once again. This fixes the issue, but we need to tell
the CI script to use that section name.
This effectively reverts commit e9d2ac8021.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6579
[ci:skip-build]: already built successfully in CI
Analog to a recent change in Fedora:
https://src.fedoraproject.org/rpms/libcamera/pull-request/14
This change allows to easily create virtual cameras, which is helpful
for testing and debugging purposes, both for system components like Mesa
and Pipewire as well as various apps.
The virtual cameras can be enabled by:
```
cd /usr/share/libcamera/pipeline/virtual
cp virtual.yaml.example virtual.yaml
systemctl --user restart pipewire
```
Using the test option allows to keep the arch dependent automatic pipeline
selection in place. It also enables building of the vimc pipeline -
which is very small - and all tests, however those don't get included
into the packages.
The new dependency, libyuv, is very small and already installed by
default for DEs like gnome-mobile.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6567
[ci:skip-build]: already built successfully in CI
Using systemd-tmpfiles to create the directory in /tmp seems to be the most systemd way to do it.
The config file for the systemd has a different format because the format of the openrc file doesn't lend itself to being used in a systemd service.
Thanks to @craftyguy for suggested fix.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6529
Add the new non-qcom name from phy-qcom-snps-eusb2 (only in linux-next so
keep the old name as well for now), and add the missing repeaters for USB
ports on many WoA laptops (ptn3222 for USB-A and ps883x for USB-C).
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6538
[ci:skip-build]: already built successfully in CI
Shells (and DEs!) that set environment from /etc/profile.d will end
up sourcing 20locale.sh from alpine-baselayout. This file will set
`LANG=C.UTF8`, and this will override whatever systemd-localed/systemd
sets LANG to. In other words, locale.conf is effectively ignored. I
hit this issue when debugging why the date in COSMIC was always `M05`
instead of `May`, and why various COSMIC components failed to detect the
locale (because it was set to C.UTF8)
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6535
[ci:skip-build]: already built successfully in CI
From my testing the different modules are roughly needed due to:
* Without the aes stuff unlock fails with
trusted_key: encrypted_key: failed to alloc_cipher (-2)
* Without i2c_brcmstb hdmi fails to come up due to
missing dependencies:
platform axi:gpu: deferred probe pending: (reason unknown)
* The sound stuff also seems to be a dependency of the drm hdmi driver
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6536
We are already passing a list of modules through the modules-initfs
file. By dropping modules from cmdline we silence this dmesg warning:
[ 0.000000] Unknown kernel command line parameters "modules=loop,squashfs,sd-mod,usb-storage", will be passed to user space.
Out of the listed modules, only squashfs is actually built as a module
by linux-rpi, so most of them do not make sense in any case.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6536
The same patch is already used on 3 devices, to make it shared.
WARNING: vmlinux.o(.devinit.text+0x1bd4): Section mismatch in reference from the function msm_pm_boot_probe() to the function .init.text:msm_pm_boot_init()
ERROR: postmarketos-base-downstream-disable-udev-v4l-2-r1: trying to overwrite usr/lib/udev/rules.d/60-persistent-v4l.rules owned by systemd-udevd-257.5-r0.
The APKBUILD reference seems to suggest that versioned provides= can
have any valid version string (e.g. 0.12-r3) in the `provides=` var, and
that it doesn't have to match `$pkgver-r$pkgrel` for the APKBUILD. IIRC
this test intends to catch typos like `provides=foo=$pkgver-$pkgrel`, so
this makes it pass when any valid version string is given.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6475
[ci:skip-build]: already built successfully in CI
alpine-base directly depends on openrc. We have had different[1]
conversations[2] with upstream. And the main conclussion[3] has been:
if you want to do something different, just depend on things
yourself. This is indeed what docker images do. So let's just get the
things that we want from alpine base (quite some!), and ignore what we
don't want (openrc, busybox openrc and init packages). Up until commit
12d125ab8b72f0249fd6aae000170a4fa78a83ab in pmbootstrap every
postmarketOS installation would have alpine-base in
/etc/apk/world. Therefore, we add a versioned provides to
postmarketos-base with a very high version, which conflicts with the
upstream version but should be chosen instead.
alpine-conf is now a dependency of postmarketos-base-openrc, since it
dependes on openrc for calling setup-*
scripts. postmarketos-base-systemd already implements those needed.
Contrary to the first attempt[4], I have kept the dependency on
alpine-release. Changes to that are independent to the usr-merge, and
can be done as a follow-up.
This should allow to drop the fork of alpine-base currently in the
systemd-extra repository!
To this day, every single pmOS installation will have alpine-base in
the world file, which means that systemd installs will the forked
package until users specifically run "apk del alpine-base". We must
add this to release notes and to an edge blog post. Alternatively we
could have an empty package with a very high version providing
alpine-base. This also means that to get installs to work, we need a
pmbootstrap release with[5] on it.
[1] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/63935
[2] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686
[3] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
[4] https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5026
[5] https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/merge_requests/2580Fixes#2806
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6475
Why is this needed?
To be able to test the usr-merge downstream we need to stop
depending on alpine-baselayout. For that, we need to stop depending on
alpine-base. This is a first step to create a "provides" solution
downstream between openrc and systemd systems, so that in a follow-up
commit we can recreate alpine-base downstream without the hard-coded
openrc dependency. The virtual instead of a versioned dependency means
that:
* In theory systemd and openrc could be installed in parallel. In
practice we avoid that with !openrc in the systemd package and
!systemd in the postmarketos-base-openrc one. There is a lot more
work required with provides (both upstream and downstream) regarding
things like elogind and eudev to be able to even have them
package-wise ready to be installed in parallel
* There must always be one installed. Here we have 3 scenarios:
* pmbootstrap install where pmbootstrap will decide which one
* update from existing install. The virtual makes sure that APK
won't remove the local package because versions changed
* Manual APK work, where the provider_priority or the user will
choose
How does this work? Hypothesis:
* openrc upgrades: the postmarketos-base-openrc remains installed,
moves from being an "install_if", to be there because it fulfills
the postmarketos-base-init requirements.
* systemd upgrades: postmarketos-base-systemd is still in
/etc/apk/world, and it fulfills the new dependency in
postmarketos-base. Nothing happens.
* openrc installs: pmbootstrap will choose one of
postmarketos-base-openrc and postmarketos-base-systemd... But which?
The one with the higher version?
* systemd installs: postmarketos-base-systemd is installed before
anything else is. That means, postmarketos-base-init will already
be satisfied when postmarketos-base gets installed, and openrc will
not be installed
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6475
This is inconsistent through the file. In addition, the "_" prefix is
often used when a function is not directly a split function from a
subpackage, but a "private" function that others call. So remove it to
make it clear that these are subpackage split functions
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6475
It is a lot more prone to breaking than stable, which is the
default. The reason to have them there is also not very clear.
The editor-config has been there since its introduction in
e7a8141113. It might be that at the time
it was not in community or in a stable release. The shellcheck-grep
has been there since 81872a59c1, which
was already 6 years ago. Probably at the time our tooling was a lot
less integrated and stable in alpine as it is today, and everything
was running edge.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6471
This sounds counter-productive and counter-intuitive, but hear me out:
this allows using `needs` to depend on those jobs, without further
templating downstream jobs.
In turn, those jobs depending on a disabled jobs, while they still exist
in the “graph” of the pipeline, are also transitively disabled.
This change, for all intents and purpose, is a no-op regarding the
amounts of jobs being sent to CI runners.
Also updates the comment for the placeholder job, since the wording
could lead to think that *having jobs* is sufficient. In reality, having
jobs that ran succesfully is necessary for the child pipeline to be
successful.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6399
None of the devices running trailblazer actually need all these daemons
or firmware. Move almost everything to recommends so that users can free
up space and so that customised images can be built with
--no-recommends.
Since there are some folks already using trailblazer who DO depend on
these packages, let's try letting users know about this at least.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6239
Add device tree and initial stab at panel driver for the new barnesnoble-encore device.
Changes to be committed:
new file: device/community/linux-postmarketos-omap/0013-arm-dts-Add-barnesnoble-encore-support.patch
new file: device/community/linux-postmarketos-omap/0014-panel-Add-lg-ld070ws1-for-barnesnoble-encore.patch
modified: device/community/linux-postmarketos-omap/APKBUILD
modified: device/community/linux-postmarketos-omap/config-postmarketos-omap.armv7
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6486
[ci:skip-build]: already built successfully in CI
Add device package for barnesnoble-encore, aka Barnes & Noble Nook Color. Device tree and initial stab at panel driver will be added as a separate commit to the mainline omap kernel.
new file: device/testing/device-barnesnoble-encore/APKBUILD
new file: device/testing/device-barnesnoble-encore/deviceinfo
new file: device/testing/device-barnesnoble-encore/modules-initfs
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6486
The gcc-x86_64 is only built for aarch64. Set the depends line to
so:libc.musl-aarch64.so.1 as we had it before 42a50731 ("cross/gcc-*:
upgrade to 14.2.0-r6"). I had set it to so:libc.musl-x86_64.so.1 like
the other cross gccs by accident.
[ci:skip-build]: I'll verify it builds locally before merge.
[ci:skip-vercheck]: version not bumped intentionally.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6501
Bring back manually listed soname depends that were removed in 42a50731
("cross/gcc-*: upgrade to 14.2.0-r6 "). Without these we get various
cross compiler errors (issue 3705).
How these were removed: the cross/gcc-* packages are generated from
"pmbootstrap aportgen", and the code in master currently removes those.
There was a WIP MR that adds the depends again, but it was not finished
(pmbootstrap MR 2521). This needs to be fixed in pmbootstrap and we need
a better process that ensures we can't push broken cross compilers to
master anymore if followed correctly. I'll look into all of that, but
first let's get the cross compilers working again in edge.
[ci:skip-vercheck]: for generated gccs we keep the same pkgrel as in
alpine. I'll force a rebuild in BPO after merge (not
ideal, but fixing this is rather urgent as cross
compilation is otherwise broken in pmOS edge)
[ci:skip-build]: tested locally
Related: issue 3705
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6500
Run aportgen again with pmbootstrap MR 2597 to fix the conflict when
installing cross gcc and native gcc at the same time:
(52/53) Installing gcc-armv7 (14.2.0-r6)
ERROR: gcc-armv7-14.2.0-r6: trying to overwrite usr/lib/libgcc_s.so.1 owned by libgcc-14.2.0-r6.
[ci:skip-vercheck]: for generated gccs we keep the same pkgrel as in
alpine. I'll force a rebuild in BPO after merge (not
ideal, but fixing this is rather urgent as cross
compilation is otherwise broken in pmOS edge)
[ci:skip-build]: tested locally with gcc-armv7
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6497
The value after the colon is defines to apply only to the
XDG_CURRENT_DESKTOP. Phosh upstream defines it for setting a yellow
accent color and no background image, and therefore takes priority if we
don't enforce it to the XDG_CURRENT_DESKTOP value aswell.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6479
The value after the colon is defines to apply only to the
XDG_CURRENT_DESKTOP. Phosh upstream defines it for setting a yellow
accent color and no background image, and therefore takes priority if we
don't enforce it to the XDG_CURRENT_DESKTOP value aswell.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6479
The DTS patches for it do not apply anymore, and exkc has said that
their device is now broken, so they are unable to continue maintaining
the port.
As a stop-gap solution, xiaomi-once users who still wish to use
postmarketOS can use the p212 port. They are also welcome to fix the
devicetree patches and upstream them.
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6412
Installing systemd-resolved by default is still probably not a good
idea (e.g. until #1430 is fixed, at least?), but this adds config for
NM and sd-resolved to get the stub resolver set up automatically when
systemd-resolved is installed manually by a user.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6250
[ci:skip-build]: already built successfully in CI
This helps ensure the logs are actually flushed.
The numbers chosen are relatively arbitrary, and it might be that using
a longer delay, maybe with more messages too, is desirable.
Right now, it's printing 20 times over a span of 2 seconds.
The whole `precision` schtick is how we can approximate float division,
when using only integer division. Then, the important trick is to shove
the given number back into the correct representation for `sleep`, and
careful `printf` application gives us exactly what we need.
Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6335
[ci:skip-build]: already built successfully in CI
- Point shellcheck to the files this is sourcing
- Tell it about the shell in use
- Drop unused variable (grepped around)
The last change is about how the hooks are ran. The warning shellcheck
was giving was that using `if <command...>; then ...; fi` is preferred,
instead of comparing `$?`.
This is exactly what is now being done, so the branches have been
swapped around, and the command (full path to a hook) is being used
within the if condition.
Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6335
alpine-base directly depends on openrc. We have had different[1]
conversations[2] with upstream. And the main conclussion[3] has been:
if you want to do something different, just depend on things
yourself. This is indeed what docker images do. So let's just get the
things that we want from alpine base (quite some!), and ignore what we
don't want (openrc, busybox openrc and init packages). alpine-conf is
now a dependency of postmarketos-base-openrc, since it dependes on
openrc for calling setup-* scripts. postmarketos-base-systemd already
implements those needed.
Contrary to the first attempt[4], I have kept the dependency on
alpine-release. Changes to that are independent to the usr-merge, and
can be done as a follow-up.
This should allow to drop the fork of alpine-base currently in the
systemd-extra repository!
To this day, every single pmOS installation will have alpine-base in
the world file, which means that systemd installs will the forked
package until users specifically run "apk del alpine-base". We must
add this to release notes and to an edge blog post. Alternatively we
could have an empty package with a very high version providing
alpine-base.
[1] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/63935
[2] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686
[3] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
[4] https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5026
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6375
Why is this needed?
To be able to test the usr-merge downstream we need to stop
depending on alpine-baselayout. For that, we need to stop depending on
alpine-base. This is a first step to create a "provides" solution
downstream between openrc and systemd systems, so that in a follow-up
commit we can recreate alpine-base downstream without the hard-coded
openrc dependency. The virtual instead of a versioned dependency means
that:
* In theory systemd and openrc could be installed in parallel. In
practice we avoid that with !openrc in the systemd package and
!systemd in the postmarketos-base-openrc one. There is a lot more
work required with provides (both upstream and downstream) regarding
things like elogind and eudev to be able to even have them
package-wise ready to be installed in parallel
* There must always be one installed. Here we have 3 scenarios:
* pmbootstrap install where pmbootstrap will decide which one
* update from existing install. The virtual makes sure that APK
won't remove the local package because versions changed
* Manual APK work, where the provider_priority or the user will
choose
How does this work? Hypothesis:
* openrc upgrades: the postmarketos-base-openrc remains installed,
moves from being an "install_if", to be there because it fulfills
the postmarketos-base-init requirements.
* systemd upgrades: postmarketos-base-systemd is still in
/etc/apk/world, and it fulfills the new dependency in
postmarketos-base. Nothing happens.
* openrc installs: pmbootstrap will choose one of
postmarketos-base-openrc and postmarketos-base-systemd... But which?
The one with the higher version?
* systemd installs: postmarketos-base-systemd is installed before
anything else is. That means, postmarketos-base-init will already
be satisfied when postmarketos-base gets installed, and openrc will
not be installed
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6375
This is inconsistent through the file. In addition, the "_" prefix is
often used when a function is not directly a split function from a
subpackage, but a "private" function that others call. So remove it to
make it clear that these are subpackage split functions
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6375
Xiaomi didn't ship some firmware in the vendor partition, so i needed to package that firmware by myself, at that point i had some reports that in some devices (or some android versions) they were missing some firmware, so i would rather go back to package the firmware in a different package
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6429
Mainline port supports all features currently available on the
platform, bringing whyred in line with the best supported devices
on the sdm660 kernel.
Working:
* framebuffer display
* regulators
* volume/power keys
* gpio hall sensor
* battery fulegauge & charger
* PMIC vibrator
* PMIC WLED backlight
* notification LED
* storage: eMMC, SD cards
* USB (only USB2 and only gadget mode, like the rest of the platform)
* hardware video enocder/decoder (venus)
* WCN3990 Bluetooth, Wi-Fi
* Synaptics rmi4 touchscreen
* Display (mdss), GPU Adreno 509
* LCD IPS video mode panel (Tianma TD4310)
* sensors are automagically supported too
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6469
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Prepare to add a systemd-stage0 package that will replace the existing
bootstrap logic. First we need to let systemd provide systemd-stage0 and
wait until the new binary packages are built.
In follow-up patches (MR 6440), a systemd-stage0 package will be
introduced (that does not depend on systemd-enabled dbus or polkit). The
systemd/dbus and systemd/polkit will be changed to use
systemd-stage0-dev and systemd-stage0-libs as makedepends. This makes
the following bootstrap work when building without a binary repository:
1. systemd-stage0
2. dbus
3. polkit
4. systemd
If we already have the binary repository, dbus and polkit will be built
against systemd proper as it provides systemd-stage0 packages with this
patch.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6451
[ci:skip-build]: already built successfully in CI
Remove the _shell subpackage that Alpine has from our forked package, as
pmbootstrap currently can't handle it. It tries to build the dependency
gnome-shell for armhf even through this, even though it has !armhf.
A WIP fix for this is in pmbootstrap MR 2592. But let's try to get the
upstream compat check green again first.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6461
[ci:skip-build]: already built successfully in CI
Bundle patch files with the aport instead of using a custom tarball.
This allows using official tarballs and also gives more transparency.
Besides this, there's other small changes:
* Update to 6.14.4
* Add zstd to makedepends (fixes compile error)
* Drop unneeded CC assignment
* Drop unneeded mkdir call (nitpick from pmaports!6409)
Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6459
[ci:skip-build]: already built successfully in CI
The currently shipped firmware only worked on early EVT and DVT1
devices, because it is unsigned.
Signed firmware, to enable support for 8.0 was uploaded a long
time ago, but the firmware package was not bumped.
With this bump now all variations of otter are supported:
- EVT
- DVT1
- DVT2
- 8.0 (MP)
- 8.1 (MP)
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6454
[ci:skip-build]: already built successfully in CI
The initfs compression was a leftover from when the device aport
was using the sdm845 mainline kernel (as we played with the otter
bringup there).
This resulted in causing the device to not boot.
Also remove the kernel cmdline as it is already handled by getty.
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6455
[ci:skip-build]: already built successfully in CI
The device has seen a decent amount of work put into it and is usable
on a basic level. Many features unfortunately remain unavailable, but
the device fulfills the wiki requirements to be moved to community, so
let's do that to increase visibility.
The PXA1908 firmware package and the U-Boot package are moved together
with the device packages.
[ci:skip-vercheck]
Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6409
[ci:skip-build]: already built successfully in CI
As many other downstream kernels, this needs to depend on linux-headers
to fix:
In file included from /home/pmos/build/src/android_kernel_alcatel_ttab-1795ea3c237773d32616954a03738d67d209a8d7/scripts/sortextable.c:31:
/home/pmos/build/src/android_kernel_alcatel_ttab-1795ea3c237773d32616954a03738d67d209a8d7/tools/include/tools/be_byteshift.h:4:10: fatal error: linux/types.h: No such file or directory
4 | #include <linux/types.h>
| ^~~~~~~~~~~~~~~
It also needs xz:
/home/pmos/build/src/android_kernel_alcatel_ttab-1795ea3c237773d32616954a03738d67d209a8d7/scripts/xz_wrap.sh: exec: line 23: xz: not found
Related: https://builds.sr.ht/~postmarketos/job/1477748#task-pmbootstrap_build-583
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6446
[ci:skip-build]: already built successfully in CI
Some phones sold under the Jolla brand are manufactured by a partner,
e.g. the Jolla C2 is manufactured by Reeder. Although these phones
usually have another name given to them by the manufacturer, the name
used by Jolla is more recognizable. Allow specifying a name that
starts with "Jolla" instead of the manufacturer name.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6426
If a custom bl1 is used on sdcard, then it should be embedded at
0x200 (512). If a GPT filesystem is used, then the GPT header uses
roughly the first 0x500 bytes, and hence bl1 overwrites part of the
GPT header in that configuration.
Change to msdos partition type so that the filesystem works fine
whether or not we use stock bl1 or custom one.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6442
The wrong branch was not only used for pytest, but for all CI tests that
used pmbootstrap. I've fixed the bug in pmbootstrap now and added a
generic check to ensure we would catch a similar bug if we had one in
the future.
This reverts commit 7fd9e01f7f.
Related: pmaports issue 3674
Related: pmbootstrap MR 2586
Related: ci-common MR 14
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6439
MR 6417 added a workaround for a GTK4 issue in flatpak by setting
GSK_RENDERER=ngl for all Qualcomm devices. This is now causing crashes on
many of the older Qualcomm devices that specifically avoid usage of the ngl
renderer. These devices already set a custom GSK_RENDERER in /etc/profile.d
(e.g. on MSM8916 devices: gl in v24.12, cairo in edge).
Several device packages install those settings into /etc/profile.d/adreno*
so let's avoid the conflict for now by reducing the priority of the flatpak
workaround and installing it to /etc/profile.d/99-flatpak*. That way the
setting from the device packages takes priority.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6434
This will be the last 6.6.x update, next update will be based on the
6.12 lts.
* Support for exynos5420-samsung-v1awifi is added thanks to
@Eisenbahnfan
* Several: fixes for usb and charging for Exynos 5250
devices (manta in particular) has been added thanks to @Alexmrqt
Tested on exynos5250-google-snow, exnyos5420-samsung-klimtlte and
exynos5422-odroid-xu4.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6432
[ci:skip-build]: already built successfully in CI
Let the openrc subpackage depend on eg25-manager-openrc to ensure the
latter gets installed first. Otherwise this can happen:
(122/741) Installing device-pine64-pinephonepro-openrc (4-r3)
Executing device-pine64-pinephonepro-openrc-4-r3.post-install
* rc-update: service `eg25-manager' does not exist
ERROR: device-pine64-pinephonepro-openrc-4-r3.post-install: script exited with error 1
(123/741) Installing eg25-manager-openrc (0.5.2-r0)
Related: https://builds.sr.ht/~postmarketos/job/1472555#task-img-521
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6424
[ci:skip-build]: already built successfully in CI
This removes the audio-none subpkg, and the dependency that
postmarketos-base-ui had on it.
This renames the pmos-base-ui-audio virtual that the pw and pa backends
provided to `postmarketos-base-ui-audio-backend`.
To allow UIs to select no audio components, a new pmos-base-ui-audio
subpkg was added. UIs that need audio should depend on the virtual
pkg `postmarketos-base-ui-audio`. UIs that don't want audio can simply
depend on postmarketos-ui-base and no audio stuff will be pulled in.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6408
This reverts commit e2557598d7. The patch
caused installs to fail where the device package explicitly depends on
postmarketos-base-ui-audio-pipewire:
ERROR: unable to select packages:
postmarketos-base-ui-audio-pipewire-35-r0:
conflicts: postmarketos-base-ui-audio-none-35-r0[postmarketos-base-ui-audio=35-r0]
satisfies: device-xiaomi-nabu-5-r0[postmarketos-base-ui-audio-pipewire]
postmarketos-base-ui-35-r0[postmarketos-base-ui-audio]
postmarketos-base-ui-audio-none-35-r0:
conflicts: postmarketos-base-ui-audio-pipewire-35-r0[postmarketos-base-ui-audio=35-r0]
satisfies: world[postmarketos-base-ui-audio-none]
postmarketos-base-ui-35-r0[postmarketos-base-ui-audio]
I've also tried to move the postmarketos-base-ui-audio-pipewire
dependency into a subpackage that doesn't get installed when
postmarketos-ui-console gets installed. But that did *not* work:
audio() {
# This does NOT work!
install_if="$pkgname=$pkgver-r$pkgrel postmarketos-base-ui !postmarketos-ui-console"
mkdir "$subpkgdir"
}
It could work if postmarketos-ui-console did not depend on
postmarketos-base-ui, maybe that should be looked at in a follow-up
patch. Or just install the audio stack and require the user to do
UI=none if they want a really minimal system. Let's revert the patch now
to fix failing installs in bpo, e.g. master:xiaomi-nabu:console.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6408
This is used by the DE's upstream (popOS), and works reasonably well so
let's install it by default so that apps that depend on secret manager
things work OOTB.
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6410
Following Alpine's example. This allows some optimizations:
* Don't start one job per architecture simply to skip them after
rebase and before merge
* If there are no packages, don't start the jobs at all (not true,
gitlab bug)
* Avoid creating jobs for architectures that don't have changed
packages, thus further reducing the unnecessary
jobs and possibly reducing transient failures
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
Introduce some basic infrastructure to allow running per-package unit
test jobs, as well as a library to support unit-testing shell scripts.
Packages can provide their own unit tests by adding a tests/
subdirectory to the package, this should contain a .gitlab-ci.yml file
with jobs that extend the .package-test job template as well as any
supporting data and scripts.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6182
These two functions echo their output, requiring the use of a subshell
to capture it. However they also attempt to cache the output in global
variables.
Unfortunately, we can't do both. Variables set in the subshell aren't
reflected in the parent shell.
Rework these functions so they take a variable to set as a parameter
(like the "read" command). This avoids spawning a subshell and enables
the caching functionality that was added previously.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6182
Since kernel v6.14-rc3 HID_LENOVO now depends on ACPI which we don't
want to require enabling on various non-ACPI phones.
Move to it x86 & x86_64 since it's anyways apparently only useful for
"Lenovo / Thinkpad devices".
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6387
[ci:skip-build]: already built successfully in CI
- Add UCM2 configurations for biscuit
- Add udev rule to switch headphone output
- Add asound config
- Add pulseaudio configs
This commit provides a basic pulseaudio setup for biscuit. The device appears
to only support 48kHz audio. Resampled 44kHz audio crackles and pops currently
due to the buffer underrunning. Some more tweaking may be needed to improve
audio playback quality.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6304
[ci:skip-build]: already built successfully in CI
* apk-tools passes the directories it triggers on as arguments to the
trigger script. Use them to only run the relevant parts of the
triggers.
* Remove "|| :" from commands, as we run the script without "set -e", it
won't fail if a single command fails. Put explicit "exit 0" at the end
to ensure this even if the last command beforehand failed.
* Print messages for each action so we know what is happening.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6346
[ci:skip-build]: already built successfully in CI
The iptables frontend for nftables seems to not play nice. Since we use
nftables in postmarketOS anyway, tell tailscale to use it directly. This
fixes routing not working and the following error seen in tailscale status
- adding [-i tailscale0 -j MARK --set-mark 0x40000/0xff0000] in v4/filter/ts-forward: running [/usr/sbin/iptables -t filter -A ts-forward -i tailscale0 -j MARK --set-mark 0x40000/0xff0000 --wait]: exit status 2: Warning: Extension MARK revision 0 not supported, missing kernel module?
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6344
This patch is in 257, so we can drop it when upgrading. Without this
patch, we'd have to the enable sysv compat stuff in systemd just to get
this legacy.conf file generated/installed, which totally doesn't seem
worth it (the sysv compat stuff seems to be a lot!)
Fixes#3616
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6352
[ci:skip-build]: already built successfully in CI
The linux-edge kernel enables the BL_SWITCHER kernel option, which enables
an in-kernel big.LITTLE switcher - with it enabled, only 4 cores are enabled
at a time, and the kernel switches between the big and little cores. However,
in a server workload, it's more likely that a user wants all 8 cores to work
simultaneously.
Disable the switcher by default by providing the no_bL_switcher cmdline option.
It can still be re-enabled by writing 1 to /sys/kernel/bL_switcher/active.
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6350
It's important to use a versioned constraint so that if the
package is ever removed from the binary repository it will actually be
removed from the users system too.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6347
[ci:skip-build]: already built successfully in CI
GPT paritions seem to interfere with the firmware baked into the SD card image;
both U-Boot and various Linux tools report the GPT partition table as broken
and fall back to the backup table. Notably, this makes the card difficult to
mount in another device. "Fixing" the partition table makes it refuse to boot.
Force the msdos partition type in deviceinfo to fix this.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6342
Fixes a conflict between systemd and systemd-udev where apk thinks they both provide cmd:udevadm:
ERROR: unable to select packages:
systemd-256.11-r2:
conflicts: systemd-udevd-256.11-r2[cmd:udevadm=256.11-r2]
systemd-udevd-256.11-r2:
conflicts: systemd-256.11-r2[cmd:udevadm=256.11-r2]
[ci:ignore-count]
[ci:skip-build] already built in CI
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6334
What we want is to reload services that need to be reloaded after
upgrade (those that are marked with needs-reload or needs-restart), to
handle systemctl daemon-reload too, and to reload udev, sysusers,
tmpfiles, etc.
This all needs to be done in a particular order, which we would ideally
do with different triggers (and triggers with consistent ordering!), but
apk can't do that so instead we have this inefficient solution which
will probably do a bunch of useless processing. ah well
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6334
As recommended on matrix, there is no need to keep everything in subpackages,
so they are being removed. Also, hexagonrpcd is being removed as it
doesn't work on this device’s soc yet.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6317
[ci:skip-build]: already built successfully in CI
Starqltechn alsa ucm profiles was included in alsa-ucm-conf-sdm845
repository. Add it to dependency list to get audio working.
This also sorts depends and source lists alphabetically.
[ci:skip-build]: already built successfully in CI
The recent optimization of not running "mkinitfs" during the trigger
script when running in pmbootstrap lead to unexpected behavior for some
use cases: testing initramfs changes and upgrading the initramfs in the
chroot (e.g. with pmbootstrap chroot --image). Let the user know that it
gets skipped and tell them how they can force building a new initramfs,
as discussed with Caleb.
[ci:skip-build]: already built successfully in CI
Perhaps the biggest highlight of this release is addition of
Qualcomm Sensor Manager support (thx @Tooniis).
Several little impovements:
* Notification LED support for clover, laevnder, tulip ( @setotau )
* missing SDCC block resets were added, several devices ( @alexeymin )
* missing SD card detect GPIOs were added, several devices ( @alexeymin )
* SD card instability was fixed, several devices ( @alexeymin )
* pd_mapper module now supports SDM630/636 ( @alexeymin )
* numerous dtbs_check warnings fixed, in preparation for upstreaming
* several commits were dropped, they are now upstream!
Manual config changes:
* SNS_REG/SMGR modules were enabled
* LED/QCOM_LPG modules were enabled
FIXME: qrtr as a bus requires some kconfigs to be =y (for SMGR patchset):
* CONFIG_QRTR=y
* CONFIG_QRTR_SMD=y
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6321
[ci:skip-build]: already built successfully in CI
Currently the initramfs is littered with various code snippets which
read /proc/cmdline. This is error prone and results in more complicated
code especially as we want to standardise all the pmos specific cmdline
arguments, and where some arguments have the same behaviour as
deviceinfo variables.
Let's do the parsing correctly, once, and set global variables to
enable/disable/configure parts of the initramfs. At the same time
introduce namespaced and standard versions of the remaining arguments
which haven't been standardised yet.
Now (for example) to check if the splash is disabled, rather than
grepping /proc/cmdline for PMOS_NOSPLASH AND checking if
deviceinfo_no_framebuffer is true, you can just check if "$nosplash" =
"y".
This will drastically simplify the process of adding additional
configuration options in the future.
Most of the code here was taken from the Arch Linux initramfs and
simplified/adjusted to better fix our use case.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6172
This adds a default preset for user units, that disables them by
default. This behavior is identical to what we do with system presets,
which means that if we want a unit enabled by default then we need
to add a preset for it or rely on some other unit to pull it in
automatically. Without this default preset, user units are enabled by
default when `systemctl preset` is run on them, which may not always be
the desired behavior (i.e. we don't want this behavior with system units).
Add starqltechn initfs modules, recently enabled in linux kernel.
This provides touchscreen and haptics support when in initramfs.
This allows to use onscreen keyboard in initramfs debug mode.
Get dbus building in edge again. This regressed due to the cross-native2
work in pmb which stopped using abuild to install makedepends and does
it in pmb instead. But pmbootstrap's parsing logic can't handle
conditions in the APKBUILD.
Related: issue 3604
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build]: already built successfully in CI
Our epiphany got blocked by https://gitlab.gnome.org/ due to their new
AI scraping protection. We used a older User-agent that is not
regocnized by their protection and blocked us with "Access Denied.".
Nowadays Epiphany uses a dynamic user agent by default depending on the
chassis reported by systemd-hostnamed (e.g. mobile or desktop).
Fixes: 2722f6cac5 ("main/postmarketos-ui-{gnome,phosh}: less revealing epiphany user-agent (MR 1402)")
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6293
[ci:skip-build]: already built successfully in CI
The thermal monitor measures an NTC thermistor which decreases voltage
when the temperature increases.
When fixing the scaling for the first time, a wrong division by 20 was
removed. The voltage code was still high by a factor of 28900/16384,
enough that the thermal monitor constantly signalled/interrupted at a
low voltage/high temperature trip point. The thermal monitor still
reports the correct temperature so the kernel keeps the wrong trip
points and lets the thermal monitor keep interrupting 1000 times/sec.
Fix the other scaling amount so the thermal monitor sends interrupts at
the right temperature (with some imprecision).
Set CGO_ENABLED=1 to fix the following when cross compiling with
cross-native2 from x86_64 to (armv7,riscv64,armhf):
-buildmode=pie requires external (cgo) linking, but cgo is not enabled
Depends: pmbootstrap MR 2565
Related: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15809
Don't run mkinitfs inside "pmbootstrap install" with the trigger
script, as it triggers multiple times as the rootfs gets constructed,
slowing down the process. Instead, pmbootstrap runs "mkinitfs"
explicitly once at the end of "pmbootstrap install".
pmaports master has pmbootstrap_min_version=2.3.2 in pmaports.cfg, which
already runs "mkinitfs" at the end of "pmbootstrap install", see
pmb/install/_install.py, install_system_image().
This way you can add e.g. [ci:skip-vercheck] to the commit it actually
belongs to instead of having to add it to the last one in the series,
which is unintuitive. It still doesn't only run the check on commits
that contain the message, which might be a nice future improvement.
So that the file managers and choosers - Nautilus by default - show thumbnails
not only for images but also videos. Apart from being a nice-to-have, it
can help prevent privacy issues like uploading/sending wrong videos - an
increasingly realistic scenario as camera recording becomes more usable.
Note that Gnome usually uses totem-video-thumbnailer for that job,
but ffmpegthumbnailer has fewer dependencies, seems to be more stable,
is slightly faster - and pmOS already comes with ffmpeg, so there are
no additional licensing issues.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6300
This enables systemd-oomd by default and provides some default
configuration for system.slice and for all slices that run under user.
This default slice config is inspired by what Fedora ships,
which seems like a sensible default for us to start with. Units/slices
within these two top-ish level slices can set their own limits and
actions if they want.
Always make sure openssh server w/ PAM support is installed. This also
drops an implicit dependency on `openssh-client`, this was pulled in
previously by `depends="openssh"`.
fixes#3570
Upgrading from the old LTS (6.1.y) to the latest LTS (6.6.y) version.
Kept most of the defaults, except where the current/previous config dictated another logical decision.
Only containing black levels for now.
This should only slightly increase image quality, but apparently also
works around a bug in libcamera making the output all black, with
occasional purple or red flashes.
[ci:skip-build]: already built successfully in CI
Changelog:
- Support busybox 'date' command
BB's `date` doesn't support the long form for args (e.g. `--utc`), only
the short form, while coreutils supports both versions. By using the
short form swclock-offset can support both versions of `date`
Fixes#3585
[ci:skip-build]: already built successfully in CI
The package name was missing the -systemd suffix, causing it to conflict
with the real polkit-kde-agent-1 package.
[ci:skip-build]: already built successfully in CI
deviceinfo_disable_dhcpd only disables dhcpd during init, but it should
also be disabled in other contexts.
[ci:skip-build]: already built successfully in CI
The regex has not been working for a long while, there have been
previous attempts to try fix it, but it's still failing. There is
also common understanding in the team, that the regex is not terribly
useful. So remove it.
We now have a bot that reads those lines from APKBUILD files, instead
of using a proprietary gitlab feature. Relevant changes:
* Change @ollieparanoid for @Newbyte as maintainer for GNOME packages
where Oliver was listed.
* Don't add @craftyguy as Librem5 maintainer, as he dropped it long
ago
* Remove entries referencing archived ports
* Don't touch jenneron's maintainership. That's a task for another day
* Don't add "balejk" as maintainer. We have tried pinging them, but
seem to be currently idle
person is. Help figuring it out would be welcomed.
* Don't add "binarycraft" as maintainer. Last contribution was years
ago: https://gitlab.com/binarycraft
* Don't add more maintainers to linux-postmarketos-qcom-msm8953, as it
would have ended up with 7, which might be a bit too much
* Don't add more maintainers to the PinePhone. The current ones seem
to actually be the most active
* Don't add Danct12 to N900. Sicelo has been single-handedly managing
it for a long while
* Update maintainer emails for Nikita Travkin, Alexey Minnekhanov, and
Barnabás Czémán
[ci:skip-vercheck] Co-Maintainer changes require no pkgrel updates
since the names do not make it to the package itself
[ci:ignore-count]
Fixes#3530
[ci:skip-build]: already built successfully in CI
pam_dump_runtime_dir isn't needed with systemd. if a user install this
module, this might break with logind integration..
[ci:skip-build]: already built successfully in CI
(S805X)
Tested on Xiaomi Mi TV Stick (S805Y).
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
[ci:skip-build]: already built successfully in CI
1. dependencies useful for all X11 DEs/WMs moved to x11 subpackage
2. add dmenu-based power key menu with options for shutdown, reboot, and
screenshot
3. handle power and screenlock keys using i3 directly, instead of acpi/evtest
4. add mouse key emulation via Shift+keyboard-keys
[ci:skip-build]: already built successfully in CI
More detail in the included patch but tl;dr patches a dummy mmap
function in the PCM audio driver that causes a kernel panic
when used by pulse.
[ci:skip-build]: already built successfully in CI
pmbootstrap > 3.3.1 is stricter with the dependencies, it will only
install packages that are in makedepends during builds. Before it also
installed packages from depends.
Add postmarketos-mvcfg to makedepends, as it gets used in build().
postmarketos-mvcfg will be removed in the future (see issue 3580), but
let's unbreak the build first.
Related: pmbootstrap issue 2574
[ci:skip-build]: already built successfully in CI
Loaded 100 of 4504 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.