These dependencies don't belong here.
- iw: should be installed by the user themselves when wanted
- nano: should be installed by the user themselves when wanted
- pulseaudio: should be installed by the UI meta packages that need it
instead
- pulseaudio-alsa: should automatically be installed when both
PulseAudio and alsa are installed
https://gitlab.alpinelinux.org/alpine/aports/merge_requests/4820
Partial revert of 24fa68c9 ("avoid storing initramfs-extra twice").
Some people have (rightfully) complained that including the hash
in the filename of the initramfs-extra prevents the device from booting
whenever the boot partition gets out of sync with the boot image.
In general we should assume that those two are in sync, but there is
no need to unnecessarily break this if previously booting the outdated
extra initramfs worked just fine.
At the end, the hash is just an implementation detail for the caching
mechanism - we need it when (re-)generating the initramfs, but it does
not have to be within the filename. Instead, we can simply append the
hash to the file contents. GZIP will simply ignore the trailing garbage.
The boot partition will then look like:
$ cat /boot/initramfs-<flavor>-extra
<GZIP data>d3c7b449c6fc811d97351bbc46852b66 (the hash)
This makes the filename of initramfs-extra nice and stable again.
It also fixes a regression where the initramfs-extra would no longer
get symlinked by "pmbootstrap export" (I was going to fix that in
pmbootstrap but now this solution is more appealing...)
While we're at it: Make the script more resilient again by writing
to a temporary file first, then move it (atomically) to the real path.
We should do this in the UI packages that need it rather than in the
device packages themselves because for example Phosh doesn't need Ofono
but ModemManager
HOSTCC defaults to gcc, so we should only set it to override it
if we want to use an older GCC. Removing it avoids annoying linter
warnings caused by the HOSTCC="..." variable assignments.
Currently, every LCDs inside their (our users) pocket are driving 3.3V,
meanwhile the LCD interface is meant to drive at ~2V.
This turns our LCDs into a timebomb that is ready to trigger at any moment,
killing the display.
Signed-off-by: Danct12 <danct12@disroot.org>
- Update to Linux 5.6-rc2
- Major improvements for Motorola Moto G4 Play (motorola-harpia)
- Display
- Touchscreen
- Accelerometer
- Audio
- Modem
- Vibrator
- Fix headphones/headset detection for wileyfox-crackling
- Add mount-matrix for samsung-a3ulte/a5ulte to fix
orientation detection with iio-sensor-proxy
- A lot of cleanup everywhere
- APKBUILD: Clean up makedepends (a lot of them are unneeded)
wileyfox-crackling was the only user of QCDT. Now that it is also
using appended DTBs, there is no need to generate the QCDT image anymore.
Another advantage of this is that mainline can then be only booted using lk2nd
(as intended), since booting it from the stock bootloader has weird side effects
(e.g. no WiFi/BT MAC address set).
That path works just as well as documented at
https://doc.qt.io/qt-5/qstandardpaths.html (GenericConfigLocation) and
it doesn't depend on the user being created after the package has been
installed.
polkit rely on systemd, so we don't get correctly working setup.
This impact non-working backlight control from userspace and other
stuff.
Signed-off-by: David Heidelberg <david@ixit.cz>
At the moment we store the same initramfs-extra twice on the file system:
- /boot/initramfs-<flavor>-extra
- /var/cache/postmarketos-mkinitfs/initramfs-<flavor>-extra_<hash>
The second copy is exactly the same file, just with the <hash> (for caching)
appended to the filename.
We can avoid this by appending the hash directly to the filename
on the boot partition, i.e.
- /boot/initramfs-<flavor>-extra_<hash>
This is possible because we only reference initramfs-extra from the main
initramfs, and we already replace the path in it dynamically.
It will just let the main initramfs load -extra_<hash> instead of just -extra.
This saves a few megabytes of disk space on the rootfs.
postmarketos-ui-sway already depends on xorg-server-xwayland for
X clients. There is no need to pull in the entire X server including
all necessary drivers.
This saves ~84 MiB of disk space when installing postmarketos-ui-sway
on asus-me176c. X applications are still working fine through Xwayland.
Also remove explicit dependency on dbus - it is already pulled in
by dependencies like lightdm or elogind and nothing in
postmarketos-ui-sway depends on it specifically.
We need to generate the splash screens separately for each device,
because they are specific to the device's display resolution.
At the moment we do this dynamically during the installation process.
This has the advantage that there is no need to re-build all device
packages when one of the splash screen is changed (or a new one is added).
In reality, however, the splash screens do not change very frequently.
On the other hand, generating the splash screens dynamically has signficant
disk usage overhead for a minimal ("none" UI) rootfs:
The Python interpreter together with the necessary libraries requires
about ~60 MB of disk space on aarch64.
The splash screens itself require about ~100 KB for 720x1280.
This is not necessary if we move the splash screen generation into
devicepkg-dev, which is used to build the device package for all devices.
Another advantage is that we no longer need the (rather complicated)
caching mechanism for splash screens - so we actually end up with less
lines than before.
rootfs size for samsung-a5ulte ("none" UI):
Before: 450M
After: 388M (-62M)
After this change, every(!) device package needs to be rebuilt once.
No changes are necessary in device packages.
Kernel subpackages may contain a "-" (e.g. -kernel-mainline-modem);
replace it with an underscore to make sure that we find the
kernel-specific variables in deviceinfo.
If (a) the kernel command line parameters include PMOS_BOOTCHART2 and
(b) /sbin/bootchartd exists (i.e., the bootchart2 package has been
installed), run /sbin/bootchartd instead of /sbin/init.
Port bootchart2 to PostmarketOS, with three patches:
1. Modification of /etc/bootchartd.conf so that the collector
will stop after sshd has started.
2. Python 3.8 compatibility
3. Disable the interactive mode of pybootchartgui.
Use bootchart2 to profile system boot or a running system.
1. Add the bootchart2 package to your device.
2. Add the following kernel command line parameters: initcall_debug
printk.time=y quiet
3. To profile system boot
a. add the following kernel command line parameter: PMOS_BOOTCHART2.
This parameter causes mkinitfs to start /sbin/bootchartd instead of
/sbin/init. /sbin/bootchartd then starts /sbin/init.
b. (optional) modify EXIT_PROC in /etc/bootchartd.conf to define
when the collector is to stop.
c. Boot the system. Approximately 20 seconds after sshd starts
(if using the default value of EXIT_PROC), the collector
will exit.
4. To profile a running system
a. use the command '/sbin/bootchartd start' (as root) to start
profiling
b. use the command '/sbin/bootchartd stop' (as root) to stop
profiling
5. When the collector exits, /usr/bin/pybootchartgui will create
a visualization in /var/log/bootchart.png.
- Update to Linux 5.5-rc4
- Fix freeze/crash when accessing reserved memory on Samsung devices
- This happened e.g. when doing large eMMC writes
because the disk cache filled all available RAM.
- Fix SD card detection on samsung-serranovelte
- Disable UHS-1 modes since they appear to be broken in hardware
[ci:skip-build]: already built successfully in CI
Comment out the initstepslew line in /etc/chrony/chrony.conf.
initstepslew can delay booting while chrony sets the time. The
makestep 1 -1 line in the configuration also causes chrony to step
the time (whenever the offset is greater than 1s), making
initstepslew redundant.
Unfortunately, early firmware versions on MSM8916 (used together with
Android 4.4) are not capable of booting aarch64 kernels. MSM8916 was
Qualcomm's first 64-bit capable CPU, and back when it was introduced
Android did not even support aarch64 yet. So the aarch64 capable
hardware was usually used together with armv7 binaries.
To make things worse, this firmware is also signed (usually per-device),
making it (currently) impossible to update it without help from the manufacturer.
This means that we are currently unable to run mainline on devices
that never received an update to Android 5.0
(e.g. the Samsung Galaxy S4 Mini Value Edition).
One way to circumvent this limitation is to build mainline for armv7.
This works surprisingly well with some additional fixes.
Devices with this firmware limitation are still unable to use aarch64
binaries, but at least we can run mainline on them!
- Rebase on Linux 5.5-rc3
- Add display, touchscreen and GPIO keys for samsung-gt510wifi
- Add vibrator for wileyfox-crackling
- Zinitix touchscreen improvements (used in samsung-a3ulte)
- Upstreamed several patches
Current default is performance, and that is for sure not a great choice
for battery. We can experiment with ondemand as well, but based on docs,
conservative is recommended.
[ci:skip-build]: build takes too long
On some devices a getty should run on the serial console.
Configure the getty by setting the deviceinfo_getty variable. The
format is "<port>;<baud rate>". For example, "ttyS0;115200".
A post-installation trigger in postmarketos-base checks
/etc/deviceinfo, and modifies /etc/inittab if the device should run
a getty.
Fix the following error when installing postmarketos-ui-plasma-mobile:
ERROR: unsatisfiable constraints:
polkit-elogind-0.116-r1:
breaks: polkit-dev-0.116-r0[polkit=0.116-r0]
satisfies: polkit-kde-agent-1-5.17.3-r0[polkit-elogind]
.pmbootstrap-20191121.210534[polkit-elogind]
consolekit2-1.2.1-r1[polkit]
consolekit2-1.2.1-r1[so:libpolkit-gobject-1.so.0]
networkmanager-1.20.6-r0[so:libpolkit-agent-1.so.0]
networkmanager-1.20.6-r0[so:libpolkit-gobject-1.so.0]
polkit-qt-1-0.113.0-r0[so:libpolkit-agent-1.so.0]
polkit-qt-1-0.113.0-r0[so:libpolkit-gobject-1.so.0]
accountsservice-0.6.55-r0[so:libpolkit-gobject-1.so.0]
urfkill-0.5.0_git20170118-r0[so:libpolkit-gobject-1.so.0]
This is the reason, why the pmbootstrap qemu test (which performs a full
plasma mobile installation and checks running processes) check failed:
https://postmarketos.gitlab.io/-/pmbootstrap/-/jobs/357942365/artifacts/log_testsuite.txt
Enable armhf again, because "gnome-session" is available in Alpine for
armhf now.
[ci:skip-build]: already built successfully in CI. ollieparanoid made
sure that all packages build for armhf.
[ci:skip-vercheck]
Signed-off-by: David Heidelberg <david@ixit.cz>
It seems the the CFLAGS are not properly set in the CMakeLists.txt.
Cmake currently appends -std=gnu90 at the end of the CFLAGS, overriding
the earlier set -std=c99. Work around this with sed. Better fix is
welcome, this is a stop-gap solution to unbreak the build (which is
blocking build.postmarketos.org).
It's unmaintained both on our side and upstream. Nobody stepped up to
maintain it (https://gitlab.com/postmarketOS/pmaports/issues/372), so
let's drop it before it introduces security issues and compilation
problems.
ConfigFS USB attrs are customizable based on the `deviceinfo_usb_*` variables,
however some downstream kernels (e.g: msm-3.18) doesn't use configfs, instead
uses the traditional Android USB Gadget.
Based on `deviceinfo_usb_{idVendor/idProduct}` variables, we can change the USB
vendor and product.
So that on these devices, we can make it appear on USB bus as the correct USB
vendor/product ID, not "Google Inc. Nexus 4 (fastboot)"
Signed-off-by: Danct12 <danct12@disroot.org>
At the moment, a full file system check is forced even if the
file system is marked clean (i.e. it was properly unmounted the
last time it was used). On large file systems with slow I/O
(e.g. SD cards), this can take a significant amount of time.
Removing the -f option of e2fsck allows skipping the full
file system check if it is marked clean, speeding up the boot time.
Some devices' downstream kernels may have different RNDIS/functionfs
drivers (ex. QCRNDIS) that require different values for some
configfs gadget attributes. Make it possible to customize with
deviceinfo file from device- package.
The idea is that each device- package can optionally specify a
bunch of `deviceinfo_usb_*` variables to customize the way it is
visible on USB bus. The ability to override
`deviceinfo_usb_rndis_function` is essential to make downstream
sdm660 based device to appear on USB bus.
While at it, make `idVendor`, `idProduct` and `serialnumber` also
customizable. So that we can make, for example, PineTab appear on
USB bus as PineTab, not as "Google Inc. Nexus 4 (fastboot)".
Mainline U-Boot looks for the device tree blob in the "second" area
of the Android boot image (see https://patchwork.ozlabs.org/patch/1025211/).
Add an option "deviceinfo_bootimg_dtb_second" to place the device DTB there.
Currently, the USB networking setup using configfs does not configure
a "serialnumber" for the USB gadget. This means that an empty
serial number will be sent during USB enumeration.
This is usually not a problem, but it seems to cause issues under
special circumstances (on asus-me176c on one of my PCs).
The USB Gadget configfs documentation also suggests setting
the "serialnumber":
https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt
It can be any string, so we can just set it as "postmarketOS" like
the manufacturer.
The openrc service of lightdm has been moved to lightdm-openrc in
Alpine. Fix all UIs depending on lightdm, so their post-install script
does not fail with:
Executing postmarketos-ui-plasma-mobile-2-r6.post-install
* rc-update: service `lightdm' does not exist
Upgrade and add depends to static libraries to make it build again. When
the package was added initially, the static libraries were part of the
respective -dev packages.
The initramfs needs ext4 (to mount the rootfs) and usb_f_rndis
(to enable USB networking on devices that use USB configfs).
If these are built as modules, they need to be included in initramfs.
[ci:skip-build]: already built successfully in CI
apitrace have a GUI tool to inspect the trace dumped by apitrace tool.
This is built when a optional dependency of qt5 widgets and qt5 network
is satisfied. So build that as well.
current version merged was missing the zlib-dev and libpng-dev
dependency which would make apitrace build internal copies of them, and
that would fail due to missing patches for musl.
add dependencies zlib-dev and libpng-dev
The package was added with the initial Unity 8 packaging but even then
it seems that this package was never actually used.
Remove it because it no longer builds (some patches upstream might get
it building again).
[ci:skip-build]: already built successfully in CI
We have linux-postmarketos-qcom and linux-postmarketos-qcom-msm8916 now,
which is quite confusing. linux-postmarketos-qcom was originally added
for MSM8974 devices (e.g. Nexus 5) and its patches on top of mainline
are therefore quite focused on MSM8974.
linux-postmarketos-qcom-msm8916 on the other hand, has patches specific
to MSM8916. The two packages do not have any patch in common, therefore
merging the two would only cause signficiant overhead to coordinate
testing for devices of the two SoCs.
Therefore, it is better to keep them separate.
To avoid confusion, rename linux-postmarketos-qcom to
linux-postmarketos-qcom-msm8974 to make it clear that it is really
a close-to-mainline kernel for MSM8974 devices.
[ci:skip-build]: already built successfully in CI
5.17.x will be released soon with python3 changes, but before it is, for
now let's add this critical bugfix
[ci:skip-build]: already built successfully in CI
The sparse image tools (img2simg, simg2img, append2simg) are now
part of Alpine's android-tools package where they are continously
updated. (See https://github.com/nmeum/android-tools/pull/8)
Remove "libsparse" as depends from all packages because it is either:
- installed automatically by pmbootstrap when needed for
deviceinfo_flash_sparse="true"
(device-chuwi-hi10plus, device-htc-flounder, device-lg-bullhead,
device-semc-anzu, device-xiaomi-kenzo)
- seemingly unused(?)
(device-asus-z00t, linux-motorola-falcon, linux-motorola-peregrine)
[ci:skip-build]: already built successfully in CI
Phosh depends on gnome-session, which is currently not available in
Alpine for armhf. Fix the arch-lines to unblock building the binary
repository. [ci:skip-vercheck]
Fixes 'pmbootstrap flasher boot' for fastboot devices. This is probably
not used as often as 'pmbootstrap flasher flash_*', so I'm not enforcing
the upgrade by modifying pmaports.cfg this time.
We'll switch from whatever version of shellcheck is packaged in Debian
stretch to the newer version in Alpine edge in the next commit. Adjust
postmarketos-mkinitfs first, so it doesn't report any errors.
Also removed the explicit depends on telepathy-mission-control, as that
was already picked up by abuild with the soname
[ci:skip-build]: already built successfully in CI
This MR enable the new CONFIG_SND_SOC_NOKIA_RX51 kernel option which
replaces the old CONFIG_SND_OMAP_SOC_RX51, enabling the audio on the
N900 again (just tested).
[ci:skip-build]: won't finish in time
Rebuild all other GCC packages against mpfr4, so they don't fail with:
Error loading shared library libmpfr.so.4: No such file or directory (needed by /usr/gcc4/libexec/gcc/x86_64-alpine-linux-musl/4.9.2/cc1)
[ci:skip-build]: won't finish in time
Related: 2b32ed3a48786fa151cad8f920e5d9997bee94ed in Alpine's aports.git
* Added display in final pinephone to the kernel
* Added getty
* Use RGB led to signify booting status in u-boot
* Enable CONFIG_GPIO_SYSFS
[ci:skip-build]: won't finish in time
Seems like VIA/Wondermedia 8850 devices do not boot with the default
address. Add new deviceinfo_legacy_uboot_load_address variable to
allow setting a custom one.
[ci skip] Package output does not change except for meta
information (licenses), so don't build or verify checksums
of the packages to prevent outdated source URL's breaking it.
This will have to be looked at later
A Wayland kiosk. Works in Wayland (tested in weston), X11 (tested in
i3wm) and tty. Works with both dri-virtio and dri-swrast, but I won't
recommend you running with swrast because it's veeeeery slow.
[ci:skip-build]: already built successfully in CI
Previously, running reboot-mode as an unprivileged user resulted in
Error: No error information
without a newline at the end. According to SYSCALL(2), the return value
of -1 indicated an error, but the actual error code is stored in errno.
The DRM module itself can not do anything without a DRM driver.
It just takes up precious space (about ~5 MB for aarch64)
on the boot partition.
Devices that do include the appropriate DRM driver via
deviceinfo_modules_initfs will automatically pull in
"drm" and "drm_kms_helper" as dependencies, if needed.
So there is no need to depend on it explicitly.
Use deviceinfo_framebuffer_landscape during splash screen generation.
Also add the postmarketos-splash arguments variable to the computation
of the hash for the cache.
Adjust device-pine-pinetab to use the new variable, and therefore rotate
its splash screen.
[ci:skip-build]: already built successfully in CI
kirigami-gallery is not meant for users, but it is good testing
application and is even part of reference image provided by Plasma
Mobile team.
For now we are not targetting plasma-mobile towards users anyway and
only developers, so include kirigami-gallery in main UI package.
Currently we rely on the fact, that the kernel asks user space to load
the firmware for it, so we can use the /lib/firmware/postmarketos
directory for firmware.
As the kernel has support for loading the firmware itself since
v3.7, and the parameter for adding an additional path to the search
paths was added with v3.10, we can use that to not rely on
CONFIG_FW_LOADER_USER_HELPER being set.
Update to the 5.2 kernel plus my patches for the Nexus 5 display that
will also work for other msm8974-based systems:
https://github.com/masneyb/linux/commits/v5.2-nexus5-display. There's
currently 25 extra patches on top of 5.2:
- The first 9 patches after the 5.2 commit are currently in 5.3rc1 and
were back ported to 5.2. All of these patches have 'Commit XXX
upstream.' messages in the commit message.
- The next 9 patches are for ocmem support and some msm display fixes. I
expect that these will be merged upstream for 5.4rc1.
- The remaining 7 patches are still not suitable to send upstream.
[ci:skip-build]: already built successfully in CI
I've ordered the $depends list alphabetically for better readability,
and added the bluedevil (for Bluetooth) kwallet-pam and
xdg-desktop-portal-kde runtime dependencies.
[ci:skip-build]: already built successfully in CI
As Idan Horo wrote in osk-sdl!82:
"Newer versions of cryptsetup automatically encrypt with LUKS v2.
osk-sdl assumes all partitions are encrytped with v1 and as such fails.
By just changing the encryption type to NULL cryptsetup automatically
detects and chooses the correct LUKS version. Tested on xiaomi-kenzo."
Fix wifi on htc-ace by properly setting nl80211 before wext.
/etc/conf.d/wpa_supplicant is supposed to get modified twice with the
current code in the post-install file. The first one was patched
recently to set nl80211 before wext, but that change does not work in
practice, for two reasons:
1. The code block does not even get executed, because apk reports that
/etc/conf.d/wpa_supplicant was already modified (by a package that
was installed before, in its post-install script? I could not find
out which one does that though).
2. Even if it worked, the second code block would revert the change and
put wext before nl80211 again.
Fix this by removing the first code block, and changing the order in the
second one. Make it easier to catch such errors in the future, by
printing, which files get modified, or get skipped. Set "#!/bin/sh -e",
so the script can not fail silently.
When doing pmbootstrap -y zap and then pmbootstrap install, the output
looks like this:
(141/151) Installing postmarketos-base (3-r26)
Executing postmarketos-base-3-r26.post-install
- Modifying: /etc/fstab
- Modifying: /etc/issue
- Modifying: /etc/motd
- Modifying: /etc/conf.d/syslog
- Modifying: /etc/conf.d/wpa_supplicant
- Modifying: /etc/sudoers
- Modifying: /etc/chrony/chrony.conf
This adds a seperate dts for the longts version of the devkit (which was
the un-inverted version before) and adds a shortts version which was
inverted before, but didn't exist in pmaports yet because I manually
edited the dts for every release.
This MR abuses the kernel switching feature to switch the dtb instead so
shortts/longts can be selected in the init step.
[ci:skip-build]: build won't finish in time
An SMS application for Plasma Mobile, finally!
Please note that it's still in development, and it doesn't work
flawlessly yet. For example new chats can't be initiated, someone else
has to send an SMS to you first before you can send an SMS back.
However, with this application basic phone functionality should work
with Plasma Mobile. I'll keep it up-to-date while it develops, just like
the other to-be-released Plasma Mobile applications we already package
(e.g. Plasma Camera).
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
* Added --skip option to skip specific tests
* Allow skipping broken inputs in interactive mode with ctrl+c
* Added basic modem test that lists modems in ofono
* Added audio test based on alsabat
* Added pressure sensor support
* Fixed temperature calculations
Use the start_weston.sh wrapper script again, and make it work with
lightdm. It makes custom weston configs possible, and allows starting
postmarketos-demos together with weston. The custom config logic uses a
default config from postmarketos-ui-weston unless it is overwritten
with a device specific config. Our default configs use fbdev in most
cases, as this is not the case since the change to lightdm, weston was
broken for most devices with downstream kernels, that only work with
framebuffer.
Lastly, set myself as maintainer for this UI. Resolves#289
Ollieparanoid extended this patch and made sure that this boots up
weston on the samsung-i9100 again.
When the UI package is reinstalled (due to the package being recompiled
or upgraded), it runs $pkgname.post-upgrade instead of
$pkgname.post-install which would run the sed replacement LightDM
autologin. This will cause LightDM to show the greeter when the UI
package is rebuilt, and the user ran pmbootstrap install without
deleting the old chroot.
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
Reviewed-by: Danct12 <danct12@disroot.org>
Signed-off-by: Danct12 <danct12@disroot.org>
We don't need to append the dtb to the kernel image in all cases, with
e.g. the u-boot bootloader we can load the dtb seperately from the
kernel image. Introduce a new variable deviceinfo_append_dtb, if set to
"true", append the dtb, otherwise just copy the dtb file to the boot
partition.
Fixes#260
[ci:ignore-count]
A framebuffer console plus gesture recognition UI option. Tested locally
building and on nexus 5. The power key works fine for me and the freeze
after sitting for about 5 minutes still happens for me but I don't
consider that necessarily a shelli bug, maybe the code needs to feed a
watchdog or something.
This adds the first interactive tests for inputs, interactive tests are
only run when specifying --interactive/-i. This also adds --export and
--verify. The export option will write the test results to an .ini file.
The verify option will run the tests and compare it to the saved export
and then will show a diff of hardware functionality.
Move Wayland meta packages to LightDM and replace ConsoleKit2 for
elogind for Plasma.
Now we don't need the hacky scripts in /etc/profile.d anymore!
This change requires elogind for both Weston and Plasma Mobile. Using
elogind allows us to use one patch less in kwin. Weston has logind
(which elogind provides) support disabled in Alpine Linux, so I put the
package in temp/ with it enabled for now, but will upstream this change
to Alpine.
Remove consolekit2 dependency in postmarketos-ui-xfce4.
[ci:skip-build]: already built successfully.
- main: postmarketos-mkinitfs: Add /run
Create the /run directory in the initramfs so that cryptsetup doesn't
crash on not being able to create /run/cryptsetup for lockfiles
- device: pine-dontbeevil: Remove workaround for touchscreen
- main: linux-postmarketos-allwinner: Implemented supplies for touchscreen
This uses a slightly newer commit from the kernel repo that implements
requesting a regulator in the touchscreen driver
- device: pine-dontbeevil: Remove ethernet from initramfs
This actually makes debugging more complicated since networkmanager wont
touch the ethernet adapter afterwards and the initramfs can be debugged
over uart
- temp/u-boot: sync APKBUILD with upstream and update to 2019.04
- main: linux-postmarketos-allwinner: Use 20190521 git version
Currently we're using matchbox-keyboard as on screen keyboard. However,
onboard seems to be a better alternative to, it has auto-show, word
suggestions, themes and settings you can choose. So far the best OSK out
there on the market.
There are a few minor issue such as word suggestions doesn't work (not
sure why, but i assume that onboard doesn't know about the program that
was in front of it), sound feedback doesn't work at all due to missing
sound despite it exists in
/usr/share/sounds/freedesktop/stereo/onboard-key-feedback.oga. Other
than that, I haven't found any issue while testing.
Tested on qemu-amd64.
On some devices (mainly the ones that uses wcnss-wlan), there is another
interface beside wlan0, which is p2p0. It is used for Wi-Fi Direct, but
beside that, this might also cause confusion to other users as well. And
also you cannot connect into any network with this interface.
* Fixed audio
* Fixed battery handeling
* Added fix for touchscreen not working for everyone
* Use newer upstream kernel
[ci:skip-build]: won't finish in time, Martijn made sure that it builds.
Rebuild to fix missing dependencies:
so:libicui18n.so.63, so:libicuuc.so.63
Currently we are facing another upstream compatibility issue with
Alpine, which is why CI will fail: polkit and therefore
networkmanager don't exist for armhf, armv7. See #244 for details.
This script triggers late initialization of some platform
drivers that cannot be probed at boot time, because for
example they use firmware blobs on partitions that are
not mounted during early kernel startup.
Disabled by default, can be enabled on per-device basis.
Plasma lockscreen is currently hard or impossible to unlock
using phone itself, that's why you should send a command to
ConsoleKit over DBus in a shell. This script saves from extra
typing.
The postmarketos initramfs is larger than android initramfs. This causes
problems on some devices like htc-ace that have a very small boot
partition (4MB in htc-ace). I've been able to make the boot image small
enough to fit by compressing initramfs using lzma.
With this change it should be possible to change the compression in
deviceinfo like this: deviceinfo_initfs_compression='lzma'
or even deviceinfo_initfs_compression='lzma -9'. When no option is
specified it defaults to 'gzip -1'.
I've also added dependencies to compression utilities for all possible
initramfs compression algorithms.
* Moved more PinePhone related kernel stuff to the upstream
* Added cma=256M so the CSI subsystem doesn't throw out-of-memory errors
when capturing at higher than 1280x720 resolutions (but it still hangs)
* Removed a lot of modules that get compiled for DVB tuners after
enableing the camera stuff.
[ci:skip-build]: doesn't finish in time
Explicitly depend on mpc1. Our generated gcc aports use the !tracedeps
option, so we need to explicitly set the libraries it depends on.
This has mostly not been an issue, as we are installing our gcc
packages together with Alpine's gcc package, which causes the libraries
to get installed anyway.
Fixes#236.
[ci:skip-build]: takes too long to build.
* Inverted the X-axis on the touchscreen
* Enabled the driver for the wifi/bluetooth chip and added it to the dts
* Added a horrible hack for making the touchscreen work
This also decreases the kernel version because the previous version I've
used was technically incorrect.
[ci:skip-build]: doesn't finish in time
This package was a workaround for out-of-tree modules (wireguard). We
have dropped the wireguard kernel module package already, and since
kernel-scripts is failing to build now (it would need to be updated),
let's drop it as well.
If somebody wants to bring back *and maintain* the wireguard
out-of-tree kernel module, I've documented how we had done it here:
https://wiki.postmarketos.org/wiki/Out-of-tree_kernel_modules
[ci:skip-build]: building the kernels that have been adjusted to drop
kernel-scripts related code would take too long for CI,
but I'm making sure that everything still builds before
merging.
* Created seperate DTB for the devkit named sun50i-a64-dontbeevil.dts so
it can easily be edited and the diff remains readable in gitlab
* Added patch to build the new dtb
* Added the ST LIS3MDL to the new dtb (Magnetometer)
* Added the SensorTek STK3335 to the new dtb (Proximity and ambient
light sensor)
* InvenSense MPU-6050 to the new dtb (Accelerometer and gyroscope)
* Added CSI bus and OV5640 camera
Remaining issues:
* The STK3310 module doesn't load automatically
* Camera doesn't want to capture but does show up as /dev/video0
[ci:skip-build]: doesn't finish in time
The working directory can contain other files. For example pmbootstrap uses
the same directory for generating android recovery zip files. Extra files
can end up being archived into the recovery zip.
This change explicitly passes the list of files to be archived.
Built and tested on x86_64, everything works as expected.
[ci:skip-build]: ollieparanoid made sure, that this builds for all
relevant arches. With crossdirect, so that means it is
pretty stable now \o/
UART and SSH work and HDMI works in u-boot (just like the pine-a64lts).
It should work now with display and xorg/weston works directly after
installing. Plasma mobile doesn't work directly because both kms and
fbdev are enabled and kms doesn't work yet.
linux-postmarketos-allwinner: update to 5.0.0-rc3 with patches for this
devkit, tested on this device and on pinea64lts (the only other device
using the allwinner kernel).
[ci:skip-build]: won't finish in time
Mir 1.1.2 builds without any out-of-tree patches, which is great.
I've updated a few other unity8-related packages too.
[ci:skip-build]: ollieparanoid made sure, that everything builds.
Without QT_QUICK_CONTROLS_MOBILE=true, kwin would assume it is on
desktop with touchscreen and would try to show resize overlay. which
doesn't work on phone.
Fixes#206
This aport replaces qmltermwidget, which is now used as a submodule
instead. kde/qmltermwidget is moved to main/qmltermwidget and uses a
different upstream source, and Index is updated to use it from it's new
source
Later conf files override earlier ones. With this change, device specific
packages can ship their own NetworkManager configs that override the
postmarketos config.
Example: 10-samsung-p4wifi.conf would override 00-postmarketos.conf
This isn't building anymore, because linux-postmarketos-stable has been
switched from armhf to armv7 in pma!240.
We could change the arch of wireguard-postmarketos-stable too, but the
package is not maintained at all, and I doubt that anybody is using it.
So I'm dropping it. If there are any users, please step up to maintain
the package.
Adds a new initfs hook, verbose-initfs, which doesn't do anything on its
own. Modify postmarketos-mkinitfs to check if this hook is installed and
if so run `set -x`.
It's done this way so verbose boot is enabled as early as possible,
before hooks are loaded.
Tested on the qemu-aarch64 device.
- pmboostrap initfs hook_add verbose-initfs
- pmbootstrap qemu --arch aarch64
- confirmed that commands are echoed to the console
This is tested to boot on google-crosshatch, following these
instructions:
$ pmbootstrap init, choose the mainline kernel
$ pmbootstrap install --no-fde
$ pmbootstrap initfs hook_add debug-shell
(enter fastboot mode on the device)
$ fastboot set_active a
$ fastboot flash dtbo_a ~/.local/var/pmbootstrap/chroot_rootfs_google-crosshatch/boot/dtbo-google-crosshatch-mainline.img
$ pmbootstrap flasher boot
And you should get telnet after a while. This kernel takes a long time
to build, so [skip ci]. I can confirm it builds locally.
Note that this patch adds the mainline dtb path to deviceinfo. But the
parameter gets ignored on the downstream kernel, so it's fine to keep it
in the shared deviceinfo.
Mainlining this device is work in progress, details at:
https://gitlab.com/postmarketOS/pmaports/issues/153
This makes the linux-postmarketos-stable kernel generate an armv7 package instead of armhf. The contents
of the package were armv7 already but now it can be correct with the new Alpine support.
[skip ci]: too many packages changed, build won't finish in time.
ollieparanoid made sure that this builds for x86_64,
aarch64, armhf, armv7. Also he tested that this boots up
in qemu-amd64.
* 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
I thought only having specific symlinks was enough, and it was for one
kernel. However, to make sure it works with all kernels, let's just add
symlinks for all the binutils.
* remove everything that causes conflicts when installing gcc6 and
gcc6-armhf side by side
* fix up the existing "if cross compiling" code path to use the
/usr/gcc6 prefix
* link binutils binaries to the locations they are expected to be
by gcc (this took me hours to figure out....) as well as by the
linux build system with CROSS_COMPILE
* link all gcc binaries to /usr/bin/gcc6-*
Based on the last version from Alpine, but installed to /usr/gcc6 and
with pretty much everything disabled except for the C compiler.
We can probably throw out a lot of patches, and make the APKBUILD much
smaller. But let's focus on making it possible to compile old kernels
again first. There's still a lot to do for that, see #103.
* Added linux-postmarketos-allwinner kernel
* Added copy of alpines u-boot package with pine-a64lts support
* Changed postmarketos-mkinitfs to add the plain .dtb file to the boot partition
Weston does not build for x86, because it depends on libunwind. And
libunwind is not available in Alpine for x86. I've also tried to
simply enable x86 in libunwind, but it does not build out of the box.
In order to start building again for x86 at all, let's disable weston
and all packages that depend on it on for now.
When cross compiling, the kernel scripts would be in the native arch
again. That was already fixed in !1234, however the mime type of the
binaries has changed, so we couldn't detect them properly anymore
(#1659).
This commit fixes it again, and also adds a checks so this won't
silently fail in the future.
[skip ci] because this would not run through anyway (building these
packages takes too long). Fixes#1659.
Follow-up to !1373, where `pmbootstrap flasher flash_system` was
replaced with `pmbootstrap flasher flash_rootfs`. We still had used
terms like "system partition" in a lot of places.
This commit replaces it everywhere, so it's clear that we're talking
about the pmOS rootfs (which may or may not be installed to Android's
system partition).
* Travis and Coveralls badges
* aports: instead of <https://github.com/postmarketOS>, use
<https://postmarketos.org>
* References to full URLs to issues and pull requests replaced with
a hash and the number
* grsec check: simplify error message, remove link to github issue
(nobody is using that anymore anyway)
While this feature is nifty, it doesn't really work with most mobile
wireless drivers. Wireless drivers decide to go in "weird" state when
the mac address changes at runtime.
I remember talking to someone in IRC about this and getting it disabled.
not sure how this ended up here.
See: https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1681513
This option is not working with most of the wireless drivers normally.
For example e.g it doesn't really play nice with one of my laptop's
wireless driver.
Alpine ships `mkbootimg` with the `android-tools` package now. This
conflicts with the `mkbootimg` fork from osm0sis (see #441).
Changes:
* Rename `mkbootimg` to `mkbootimg-osm0sis` (aport and binary name)
* `mkbootimg-osm0sis`: provides `mkbootimg` now (so we don't need to
change all the device aports), update version to 2018.05.10
* Adjust our `mkinitfs` script to call `mkbootimg-osm0sis`
* Better aport description
* pkgrel_bump testcase: don't fail on deleted aport
* change "pmbootstrap kconfig_check" to "pmbootstrap kconfig check"
* change "pmbootstrap menuconfig" to "pmbootstrap kconfig edit [-x|-g]"
(with legacy alias, because the first syntax was referenced to a lot)
* enable X11 interfaces: -x: xconfig, -g: gconfig
* new function to copy the xauthority file:
pmb.chroot.other.copy_xauthority()
* remove menufconfig() function from the kernel template and all kernel
aports ([skip ci] because it would rebuild all kernels and run out of
time). Alpine has dropped this as well, and it wouldn't work with the
new code anyway.
Plasma Mobile uses the telepathy-ofono through telepathy,
telepathy-ofono was developed by canonical for ubuntu touch and it is
also used by dialer-app of ubports.
telepathy-ofono is alternative to telepathy-ring.
This is basically too old stuff from meego times, and is added only
because telepathy-ofono needs it for now, I will talk with ubports
people to get telepathy-ofono ported to libqofono so we can dump this 6
year old unmaintained library.
(patches to make it build with qt5 and modern compiler are taken from
ubuntu packaging)
This was done for testing locally and is not needed for any
functionality, it managed to slip into the initial qcom kernel package,
but it is not needed.
Upstream suggests to keep remoteproc drivers as modules given they
require the firmware files to be present when they are probed, instead
of putting required firmware files in initramfs due to size
restrictions. We make these drivers modules and load them from
userspace.
Changes:
* device-samsung-klte with both downstream and mainline kernel
subpackages
* linux-postmarketos-qcom updated to last commit
What works in mainline kernel:
* internal SD card
* volume and home key buttons
* usb network
This makes weston build again on x86_64. (It still won't build for
armhf and aarch64, because Alpine's mesa binary package is currently
stuck there, I'll look into that as well.) Detailed fixes:
1. New makedepends needed, because mesa-libwayland-egl does not exist
anymore (see Alpine's aports commits 257a236 and 4f8b36b):
wayland-libs-egl wayland-dev
This fixes configure errors:
checking for EGL_TESTS... no
configure: error: Package requirements (egl glesv2 wayland-client wayland-egl) were not met:
Package 'wayland-client', required by 'virtual:world', not found
Package 'wayland-egl', required by 'virtual:world', not found
2. Disable RDP backend, because Weston source is incompatible with
freerdp 2.0.0. This avoids compilation errors like this one:
libweston/compositor-rdp.c:193:5: error: 'SURFACE_BITS_COMMAND {aka struct _SURFACE_BITS_COMMAND}' has no member named 'bpp';
* linux-postmarketos-qcom: Remove composite USB gadget
* linux-postmarketos-qcom: Fix usb networking
- Enable functionfs so we're able to actually configure the USB
networking
- Enable the USB serial console for convenience, although not enabled by
default pre-composed configuration
Moved from aports/main to aports/luna, so we can disable the entire
folder from building in the binary repository:
* qt5-qtwebengine
* postmarketos-ui-luna
The `msm-fb-refresher` updates the screen for msm based devices. It is
not needed for all devices, so we had some extra code in the initramfs,
that would only add it when the `deviceinfo_msm_refresher` variable was
set. However, we are able now to add files to initramfs hooks, so this
hack can be removed and simplify everything.
Changes:
* Remove `deviceinfo_msm_refresher` from all deviceinfos
* Add sanity check for it
* Move all `deviceinfo` sanity checks to an extra function
* `postmarketos-mkinitfs`: remove code for msm refresher
* `msm-fb-refresher`: add initramfs hook
The postmarketos-base package used to make the user part of the "video"
and "audio" groups. However, this did not work reliably, and we were
adding the "wheel" group in "pmbootstrap install" anyway.
Now all groups get added in "pmbootstrap install", and the names of the
groups have been moved to `pmb.config.install_user_groups`.
This package is currently broken in Alpine's binary packages for
the testing repository, and their build bot is stuck with another
package. In turn, this makes our package building for the repo get
stuck, as we can't build device-nokia-n900 (and it stops there).
See also: #1408
* As discussed in IRC/matrix, we're removing `linux-postmarketos-lts`
for now. The kernel isn't used right now, and we save lots of
maintenance effort with not updating it every week or so.
* new config option `"kernel"` with possible values:
`"downstream", "mainline", "stable"` (downstream is always
`linux-$devicename`)
* ask for the kernel during `pmbootstrap init` if the device package
has kernel subpackages and install it in `_install.py`
* postmarketos-mkinitfs: display note instead of exit with error when
the `deviceinfo_dtb` file is missing (because we expect it to be
missing for downstream kernels)
* device-sony-amami:
* add kernel subpackages for downstream, mainline
* set `deviceinfo_dtb`
* device-qemu-amd64: add kernel subpackages for stable, lts, mainline
* test cases and test data for new functions
* test case that checks all aports for right usage of the feature:
* don't mix specifying kernels in depends *and* subpackages
* 1 kernel in depends is maximum
* kernel subpackages must have a valid name
* Test if devices packages reference at least one kernel
* Remove `_build_device_depends_note()` which informs the user that
`--ignore-depends` can be used with device packages to avoid building
the kernel. The idea was to make the transition easier after a change
we did months ago, and now the kernel doesn't always get built before
building the device package so it's not relevant anymore.
* pmb/chroot/other.py:
* Add autoinstall=True to kernel_flavors_installed(). When the flag
is set, the function makes sure that at least one kernel for the
device is installed.
* Remove kernel_flavor_autodetect() function, wherever it was used,
it has been replaced with kernel_flavors_installed()[0].
* pmb.helpers.frontend.py: remove code to install at least one kernel,
kernel_flavors_installed() takes care of that now.
This environnment variables provides better integration and themeing to
various components and is inline with what reference Plasma Mobile
images is doing
Signed-off-by: Bhushan Shah <bhush94@gmail.com>
* Qualcomm MSM modem: 'rmtfs' support packages
* qcom_rmtfs: Server that talks to modem over IPC to allow it
read/write data for its persistent storage. This is needed for it to
boot, as well as periodically during usage. Added a patch that
it expects the storage path symlinks in /etc instead of /boot.
* qrtr: IPC library for rmtfs
* libqipcrtr4msmipc: adapter library to make qrtr work on kernels with
AF_MSM_IPC support. AF_QIPCRTR is the mainline equivalent since Linux
~4.7.
* msmipc-dev: Header files for qrtr and libqipcrtr4msmipc.
Thanks to Bjorn Andersson <https://github.com/andersson> for rmtfs and
qrtr.
* libsmdpkt_wrapper: adapter lib for QMI clients
The SMD serial packet driver in Qualcomm kernels has, AFAICT, a bug
in poll(); this works around it so that qmicli et al can work.
* i9195: firmware (modem only right now)
* add ofono (with patch for MSM devices)
Based on Alpine's package.
* i9195: add modem support
* move all modem related packages to aports/modem
* Add charging-sdl package
* Include charging-sdl into the initramfs-extra
* [initramfs] Detect charging mode and use triggerhappy to start
charging-sdl when the power key is pressed
Since it works for linux-postmarketos-stable, I've simply copied over
the config, and ran "pmbootstrap menuconfig" on it again. Then it
worked again in Qemu.
* Add NetworkManager and PulseAudio applets to Plasma
* This crashes plasma mobile on armhf (where it is not usable due
to performance problems anyway), except on mainlined kernels
with hardware accelerated graphics. This is mentioned in the
pkgdesc of postmarketos-ui-plasma-mobile now.
When building device packages, the postmarketos-mkinitfs package gets
installed as dependency of postmarketos-base. It must not try to
create an initramfs at this point, when there is not deviceinfo file.
We build the initramfs during the installation, so it's fine.
Added [skip ci] because linux kernels and KDE updates are currently
getting built for the binary repository (so Travis couldn't finish
anyway).
* device-*: add postmarketos-base to depends
* aportgen: add postmarketos-base to depends
* Add test case
* postmarketos-base: Don't depend on devicepkg
* msm-fb-refresher: Enable service in post-install
* gp-peak: Add support for osk-sdl
* gp-peak: Move non-kernel files to device-gp-peak
* gp-peak: Add audio support
Manually trigger the udev rules for audio devices and add the default user to the audio group
* Added a ui package for i3wm
* Added n900 specific i3wm config
* Fixed mixed tabs and spaces in i3status.
This is also the first commit made on an n900
running postmarketOS.
* Removed redundant X11
* Use lock.sh to lock the device
* Windows management improvements
* bump pkgver
* Fix device-nokia-n900 checksums
* Fixed path in the i3wm split package
* New "pmbootstrap build --src=/local/source/path hello-world" syntax
* The local source path gets mounted inside the chroot
* From there, a copy of the source code gets created with rsync (so
we can write into the source folder if necessary, for better
compatibility with all kinds of APKBUILDs)
* After the aport gets copied into the chroot before building (as
usually), we extend the APKBUILD with overrides to make it use
mountpoint's source instead of downloading the package's source
from the web as usually
* The package built with the local source gets _pYYYYMMDDHHMMSS
appended to the pkgver
* linux-postmarketos-mainline: use $builddir, fix patch checksum
Binary packages are rebuilding. If your kernel is not rebuilt yet, and
you don't want to build it yourself, just checkout the previous
pmbootstrap commit.
This commit also changes the arch from the postmarketOS kernels from
"all" to the ones where we actually have a kernel config.
Fixes#1229.
We have two methods of cross-compiling:
* native: everything runs with the host architecture, QEMU is not
involved. This is the fastest, but requires the build system to be
working with it. We use this for all linux-* packages currently.
* distcc: everything runs through QEMU emulating the target arch,
*except* for the compiler. This is the most compatible approach
working with all packages.
When compiling `linux-*` packages natively, kernel scripts needed
during the build process get generated. Some of these are C files that
get compiled as executables. In native mode, these get compied to the
native architecture, in distcc mode to the target architecture.
The problem is, that we need these scripts compiled for the target
architecture in the kernel's dev package in order to compile kernel
modules outside of the kernel's package (e.g. wireguard).
It is not possible to just rewrite this logic to generate target-arch
binaries when running in native mode, because these binaries require
musl-dev, linux-headers and some other packages to be installed for the
target architecture inside the native chroot.
We solve this by introducing a new `kernel-scripts` package. which
contains just the binary scripts. In case the dev package was
cross-compiled, it depends on `kernel-scripts` and symlinks these
binaries. The `kernel-scripts` package always gets compiled in distcc
mode since it does not have a `linux-` prefix.
Fixes#1230.
Fixes#1227.
This also updates the hash in linux-postmarketos-mainline, because the
hash changed upstream (they updated their git version server-side?).