As observed on UBPorts, hwcomposer implementation on Android 7 CAF (non-Nexus
Qualcomm) devices has slight differences in employed structs, which makes
them binary incompatible with AOSP headers.
Halium 7.1 android-headers extracted from LineageOS include those
modifications (e. g. https://github.com/Halium/android-headers/blob/halium-7.1/hardware/hwcomposer.h#L290),
so it is enough to add QTI_BSP/QCOM_BSP to defines of programs utilizing
those headers. In case of libhybris, only test_hwcomposer is affected so
far on 7.1 (might be not true for Android 5.1/6!).
This change avoids providing libhybris-7.1-caf package by building a
separate binary of test_hwcomposer for affected devices.
For i3 on the N900, which seems to be the only device using i3 at the
moment, I thought using Tabbed workspace layout as the default would be
best, since the screen is quite small, and having two split windows can
quickly make it impractical.
With this commit, all new windows will be created in tabbed
configuration. It is still possible to switch to stacking or standard
layout as needed, using the appropriate shortcut keys.
I noticed that some times the framebuffer driver gets configured in a
way that the ioctl performed by msm-fb-refresher returns something lower
than zero:
0ed263db09/drivers/video/fbmem.c (L877-L911)
For example when the Xorg starts I noticed it does a ioctl BLANK and
UNBLANK, but if msm-fb-refresher performs a ioctl in that moment it
stops its loop and exit.
For this reason I lost a lot of time trying to understand what was the
problem with Xorg not displaying anything until I noticed that I had
to restart the msm-fb-refresher.
With this change we don't have to care about msm-fb-refresher as it will
continue call ioctl PAN even if the framebuffer returns some negative
error code.
gcc-fix-put-user.patch doesn't apply cleanly to any kernel that
includes commit 538094 ("ARM: 8051/1: put_user: fix possible data
corruption in put_user") or a backport of it because the surrounding
lines (context) of the patch are different:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=537094b64b229bf3ad146042f83e74cf6abe59df
This commit fixes the problem by removing the context from the patch. It
also changes linux-sony-amami, linux-sony-aries, and linux-sony-taoshan
to use the shared patch.
I have confirmed that all six affected kernels still compile. [skip ci]
Ouya boots. Install instructions are being refined, but device does
boot through fastboot. Hoping to merge into master to encourage others
to contribute to the device.
This reverts commit ee659a5bb4
and increases the pkgrels of all affected linux pmaports.
I have compiled *every single kernel* that was modified with this
commit, and it worked. That took 12 hours. So I'm pretty confident that
this is a good commit. Let's roll it out and go back to stability \o/
I'll kick off the binary repo building directly after pushing this, but
it will take some time until all binary packages are available again.
[skip ci]: it wouldn't finish in time.
Add -j1 to compiling the standby code, which is compiled separately
already. This change seems to make the kernel always compile, I've
tried it 6 times, 3 times of that with pmbootstrap's "--no-ccache"
option. It got past an error about 30 seconds into the build, which
happened roughly 2 out of 10 times:
gcc6-armv6-alpine-linux-muslgnueabihf-ld: cannot find standby.o: No such file or directory
I thought, this was related to gcc6 changes, or to changes in abuild,
but both were not the case.
Grant Miller confirmed that this fixed the build, he was able to
compile the kernel ten times in a row with this commit.
The purpose of this package was to fill in until it is built in Alpine.
However, it takes forever to build the foreign arch versions. That's
due to the fact that GCC is compiling it self, and then the distcc
cross compiler magic does not work. Not worth it. [skip ci].
Further adjustments. It would have been better if I tried to build
it first, sorry for that. Another patch is coming in the pmbootstrap
repo, which makes it work even without the gcc6 pmaport.
Copy Alpine's gcc6 aport to temp. They don't have it built for aarch64
and armhf at the moment. Due to dependency checks, this means we can't
build the kernels that need gcc6, even when cross compiling with
gcc6-armhf etc. See #138 for details.
Do not add --pixman-type to the commandline, when
deviceinfo_weston_pixman_type is filled out.
--pixman-type was enabled in Weston with a custom patch, that currently
prevents us from upgrading Weston (#136).
The option allowed working around broken framebuffer drivers in
Android downstream kernels, which reported the wrong color format.
But it only works for Weston, the right way to patch this would be
patching the kernels, and we have some approaches here:
https://wiki.postmarketos.org/wiki/Troubleshooting:display#My_screen_is_red.21
When rendering on framebuffer, always do software rendering. This
should make it possible to boot up Plasma Mobile on most devices with
downstream kernels, although terribly slow. Still better than a black
screen though. Tested and working on the samsung-i9100.
We can improve the code and possibly make the rendering mode
configurable per device once we experimented more with:
* llvmpipe vs. softpipe on various devices
* armv7 (around the corner in Alpine)
* a proper display manager like lightdm
This is a simple backport of the getrandom syscall. It does not
include other changes to the random interface like periodic or
late re-seeding which might be necessary to get good random numbers.
Both depend on qt5-qtwebengine, which needs to be rebuilt in Alpine
after the soname bump of libavformat [1]. Disable them for now, so
plasma mobile can still be installed, and the pmbootstrap test case
that installs it runs through again.
[1]: https://github.com/alpinelinux/aports/pull/5586
These can be manually generated when one really wants to cross compile
from arm to x86_64. Usually this is not needed, so let's save the
compile time. [skip ci]