* Mir starts up and is able to display system settings
* x86_64 only for now, because at least ubuntu-app-test did not build
on aarch64
Based on PureTryOut's work. Getting it to this stage was a huge effort
(as it shows in the package count: 111(!)). See the merge request for
details.
[skip ci]: this won't finish in CI; ollieparanoid made sure that
everything builds for x86_64.
Successfully tested both the gcc4 compiler on x86_64 with a simple
program (fbdebug) and the gcc4-armhf cross-compiler to build a very old
u-boot port for Galaxy Nexus (a MR will follow soon) which failed to
boot with either newer version (6 and 8).
[skip ci]: already went through
PureTryOut said: The situation has improved, that's for sure, but the
scaling still isn't perfect. However, according to bshah, this is how it
should be done, so I'm fine with merging this anyway.
Alpine Linux has updated their main/icu to 63.1, which means we have to
rebuild some of our packages too.
[skip ci]: simple pkgrel bumps, building won't finish in CI
Fails to build for armhf with the error below, and doesn't seem to be
tested on anything but x86_64 anyway according to the project's
README.md file. I did not report this upstream, because we are using
the version from Purism's repository that is at 1.2.31. Upstream is
already at 1.2.68, which may have fixed this already. So if somebody
needs to have it working for anything other than x86_64, we should try
the upstream version first.
[ 83%] Creating preprocessed clst file /home/pmos/build/src/mfgtools-uuu_1.2.31/uuu/gen/emmc_burn_all.clst
gen_txt_include.sh: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:63: uuu/gen/uuu.clst] Error 127
make[2]: *** Waiting for unfinished jobs....
gen_txt_include.sh: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:68: uuu/gen/emmc_burn_loader.clst] Error 127
gen_txt_include.sh: applet not found
gen_txt_include.shmake[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:73: uuu/gen/emmc_burn_all.clst] Error 127
: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:93: uuu/gen/sd_burn_all.clst] Error 127
make[1]: *** [CMakeFiles/Makefile2:184: uuu/CMakeFiles/uuu.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 83%] Built target uuc
make: *** [Makefile:130: all] Error 2
ConfigFS expects idVendor and idProduct values to be prefixed with 0x.
Without this change, google-crosshatch shows as a device with 0:0 as the
idVendor/idProduct in lsusb:
Bus 001 Device 004: ID 0000:0000
This confuses VirtualBox: it has trouble detaching this device from
a virtual machine, so one must manually use ifconfig to bring down the
old USB network connection before reattaching.
With this change, the idVendor/idProduct is correct:
Bus 001 Device 004: ID 18d1:d001 Google Inc.
This issue also seems to affect other devices with ConfigFS, such as the
Nexus 5:
https://matrix.to/#/!clcCCNrLZYwdfNqkkR:disroot.org/$15487159511194991apGpy:matrix.org
Instead of never overwriting compiler-gcc.h if it exists, overwrite it
by default except if OVERWRITE_GCCH=0 is set in the environment.
Most kernels *do* need this file replaced and won't build without this
patch.
The 5.0 kernel now includes -Werror= parameters in the makefile, this
changes downstreamkernel_prepare.sh to support them. Without this, the
script will replace, for example, -Werror=blah with =blah, which causes
the kernel compilation to fail.
We had 2 music players included which doesn't make sense, and vvave is
actually made with a focus on mobile.
[skip ci]: do not try to build this merge request, ollieparanoid made
sure that it builds for x86_64, armhf, aarch64.
Add firmware-rtl8723bt package and Pine wifi and bluetooth firmware
subpackage.
[skip ci]: ollieparanoid will build this MR manually before merging, it
will probably not finish CI within one hour.
Adds an aport for unixbench and a wrapper so it can be started with
ubench without requiring write permissions in /usr. To launch the
benchmark on a phone and have it finish in a reasonable amount of time:
$ ubench dhry whets
Output on an i7-7700HQ in the pmbootstrap chroot:
Dhrystone 2 using register variables 146273178.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 44390.3 MWIPS (9.7 s, 7 samples)
System Benchmarks Partial Index BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 146273178.2 12534.1
Double-Precision Whetstone 55.0 44390.3 8071.0
========
System Benchmarks Index Score (Partial Only) 10057.9
This is a neat way to get relative performance between devices and
testing performance for upstream/downstream kernels.
Add python2 to makedepends, so it builds in strict mode for armv7.
Otherwise it would fail with:
checking whether /usr/bin/python2 version >= 2.6... configure: error: too old
This MR updates the app to the latest commit (currently from 2 days
ago). It also updates plasma-angelfish, but I changed the $pkgrel to
follow the format of the other Git packages.
This also re-enables plasma-angelfish and vvave in the default Plasma
Mobile installation, as they were previously disabled due to
qt5-qtwebengine (which they depend on) requiring a soname bump
upstream.
Add main/qt5-qtspeech, required dependency for kde/kpimtextedit. Disable
check in kde/kimap, as it fails at least with QEMU aarch64.
Change the source url for Sink and Kube to the KDE Download mirror
rather than their GitHub organization (they required rebuilding anyway
due to the applications upgrade).
Switch plasma-mobile to use xdg-shell instead of wl-shell. wl-shell is
deprecated in Qt 5.12 and is breaking plasmashell, it seems.
Related upstream issue:
https://invent.kde.org/kde/plasma-phone-components/issues/2
This introduces another regression that applications don't start
maximized. Will have to solve this issue upstream.
Closes#159
The show_splash function called by the 20-debug-shell.sh script already
skips fbsplash when the device is configured to not use the framebuffer.
But the variable was not defined in the script. This is solved by
including the /etc/deviceinfo file.
Follow-up to !108, where this change got lost in the rebase.
Let pmbootstrap properly parse the package URLs, this is required for
the next commit where we start comparing the pkgver of all QT packages
- based on the URL like we do it for the KDE packages.
Depend on wayland-dev and remove the LuneOS related patch that does not
apply anymore. We don't ship LuneOS UI anymore (see #49), so there's no
point in carrying around the patch.
This package was broken in the upgrade to Qt 5.12.
Also noticed that the debug-shell hook wasn't sourcing the deviceinfo
and still showing the splashscreen even with
deviceinfo_no_framebuffer="true", now is fixed and tested.
Additionally, fix a typo in the existing
"NOTE: Skipping framebuffer setup..." message.
When util-linux v2.32 updated v2.33, remounting a partition stopped
working.
mount -n -o remount,rw /
mount: /: can't find LABEL="pmOS_root".
This service will add the pmOS rootfs partitions to device mapper so that
the remount root partition will succeed.
Fixes issue #156
This is a followup to !109 (merged). Affected packages:
* device/linux-samsung-p4wifi
* device/linux-sony-tulip
* device/linux-teclast-x80pro
* main/linux-postmarketos-allwinner
* main/linux-postmarketos-mainline
* main/linux-postmarketos-qcom
* main/linux-postmarketos-stable
[skip ci] I have confirmed that all 7 kernels still compile.
Builds abuild-sign and abuild-tar.static without any dependencies, so
they can be used outside of an Alpine Linux system. We need this for
build.postmarketos.org.
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.
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
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
Adjust the mime-type that gets used to find executables to
application/x-pie-executable and change the APKBUILD logic to print out
a meaningful error when the executables can not be found.
Also fix the broken patch logic (doesn't display an error anymore).
Fix Nexus 5 (hammerhead) boot and framebuffer issues at startup by
waiting up to 10 seconds until the rootfs and /dev/fb0 have been
found. Waiting for the framebuffer device can be disabled by setting
deviceinfo_no_framebuffer=true in the deviceinfo.
Copy Mediatek /emmc@partitionname symlinks to the chroot. This is
needed on Mediatek devices because the fstab file references the
partitions using those symlinks (which the kernel creates - for
whatever reason - in the root directory) and otherwise we don't know
which partition is which.
We used to put a "compiler-gcc6.h" file inside every vendor kernel's
aport. This is redundant and only works with GCC6. With this patch,
a common "compiler-gcc.h" file will be used, that works independently
of the GCC version.
The file is from Decatf's android_kernel_samsung_p4 repository, where
it was taken from upstream Linux, but adjusted to work with older
vendor kernels (different #ifndef check at the top etc).
bd0772df21/include/linux/compiler-gcc.h