* Using full diff skipping v4.15-rc1
cgit doesn't generate proper patches for binary files (one was added in
v4.15-rc1 and removed in v4.15-rc5 because it also introduced a new
build-time dependency which is now solved). For 4.16 the "old" source
lines can be re-added but until then a full diff skipping v4.15-rc1
is needed.
* Add patch from linux-next to fix the build on some machines
(sync-check.sh was not executable, see #950)
* Changed usb-shell behavior, it wait for some user action before continue booting
* Rename usb-shell to debug-shell and changed port to 23
* Add `20-debug-shell.sh` script to static code analysis
* Enable eth0 interface in initramfs (qemu)
* Add additional script to run a shell in order to be able to kill it from a telnet session
* Rename deviceinfo variable flash_methods to flash_method
* Update pmb.config.deviceinfo_attributes / add sanity check
* Add test case that parses all deviceinfo files
Also removed the Alpine maintainer (as we usually do so we don't
annoy him) and changed the pkgver to 9999 (this package is present
in upstream Alpine, we don't want it to get replaced when Alpine
updates their version).
* Added a lot more Luna packages. It is now possible to start Luna, complete the first use app, and use the system. ARM support still broken.
* Cleanup & testing fixes. Starting in a fresh qemu environment works, but isn't quite deterministic. See wiki page for details
Add qt5-qtbase with OpenGL ES2 enabled and adjust the
upstream compatibility test case.
* Test case: don't get the qt5-qtbase version from any APKINDEX, but
only from Alpine's community APKINDEX
* Test case: If the pkgver is 9999, look at _pkgver
* Upgrade Qt libs to 5.9.3
* Add test case to make sure we are always in sync with Alpine's QT
and update qt5-qtsensors, too.
* Remove qt5-qtquickcontrols2 (it's in Alpine now)
It made problems, see #956 and #952. Originally this was added, so
our plasma mobile packaging - which targets wayland - doesn't need
to depend on X11 stuff. And because dbus-x11 caused a 1 minute
wait for an X server (#377).
We have yet to figure out if this problem returns, but even if that
happens, it's better than having it completely broken. And we can
probably figure out a better way to fix it (for real).
Contains everything from #940, except on top of master now.
Also added a postmarketos-ui-luna package to be a meta-
package for all of the Luna work.
Every component included here builds & runs, but isn't
functional without a handful more packages.
* Add postmarketos-ui-plasma-mobile
* Add more required packages
* Upgrade plasma sources
* Modernize APKBUILDs
* Make it run in general
* Support RGB32 framebuffer with BGR order (thanks @zhuowei!)
The mesa driver, which ends up in the installation image, needs to be known
before the installation is done (in other words: when running the qemu action,
it is to late as the image has already been generated). That's why one can
choose the Qemu mesa driver in `pmbootstrap init` now:
```
Device [qemu-amd64]:
Which mesa driver do you prefer for your Qemu device? Only select something other
than the default if you are having graphical problems (such as glitches).
Mesa driver (dri-swrast/dri-virtio) [dri-virtio]:
```
It is still possible to select `dri-swrast`, because `dri-virtio` may not work
in all cases, and that way we could easily debug it or experiment with other
mesa drivers (e.g. the "vmware" one, which is supported by mesa and Qemu).
Other changes:
* `pmbootstrap qemu` accepts a `--display` variable now, which passes the value
directly to `qemu`'s `display` option. It defaults to `sdl,gl=on` (@PureTryOut
reported that to work best with plasma mobile on his PC). `--display` and
`--spice` (which is still working) are mutually exclusive.
* Removed obsolete telnet port pass-through: We only use the debug telnet port
since osk-sdl has been merged.
* Add show-cursor to the Qemu command line, so it shows a cursor in X11
* Refactored the spice code (`command_spice` only returns the spice command,
because it has all necessary information already) and the spice port can be
specified on the commandline now (previously it was hardcoded in one place and
then always looked up from there).
* Start comments with capital letters.
* Keep the log on the screen a bit shorter (e.g. Qemu command is written to the
"pmbootstrap log" anyway, so there's no need to display it again).
* linux-postmarketos-stable: Adjust kernel configs
x86_64, armhf: enable as modules:
CONFIG_DRM_VIRTIO_GPU, CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_BALLOON
aarch64: all 3 options were already enabled as built-in (no change)
* Set '-vga virtio' for mesa-dri-virtio
* pmbootstrap init: Generate new port device- and linux-package
* adds `pmbootstrap aportgen device-*` and
`pmbootstrap aportgen linux-*`
* ask for confirmation when selecting a non-existing device
* generate the packages directly from init
* refactor aportgen code
* fixed some easy things in the linux- APKBUILD (more to come in
follow-up PRs!)
Testing:
* Test all questions to the user from pmb.config.init and pmb.aportgen.device
(except for the timezone question, because we would need to monkeypatch the
os.path.exists() function, which messes up pytest, so we'd need to refactor
the timezone function to be more testsuite friendly first)
* Run the device wizard in a testcase a few times and check the output, that
pmbootstrap.aportgen.device and pmbootstrap.aportgen.linux create by parsing
the resulting APKBUILDs and deviceinfo and checking its contents.
* Build the generated device package once in the same testcase
Thanks a lot to @drebrez for all the help with this one:
<https://github.com/postmarketOS/pmbootstrap/pull/821>
See also the updated porting guide:
<https://wiki.postmarketos.org/wiki/Porting_to_a_new_device>
The conflict happens, when we're on rc-1, the old naming only contains the target version, so there will be two file named `postmarketos-linux-mainline-4.15-rc1.patch`: one that updates the kernel from the latest stable, and one empty.
* XFCE4/Hildon: Log to syslog, see also:
<https://github.com/postmarketOS/pmbootstrap/pull/762>
* Fix XFCE4 didn't start in qemu-amd64, because it required
libEGL.so.1, which is provided by mesa-egl. This is a dependency
of device-qemu-amd64-x11 now. (It worked for Hildon and Weston,
because they pull mesa-egl in with other packages.)
This causes initramfs to skip calling 'kpartx' when pmOS has been
installed on an external disk (e.g. sdcard). Fixes mounting pmOS_boot
by label (#774).
@drebrez deserves much credit for this one for all the testing,
bisecting and for fixing everything. Thank you very much!
---
* devices which need a custom weston.ini ship it with a install_if
subpackage, so it only gets installed when weston is installed. This
sounds complicated, but is actually pretty clean in the APKBUILD.
* postmarketos-ui-weston: has a weston.ini.default, which enables
xwayland and uses fbdev as backend (because that's what most
devices use!). It defaults to the weston.ini.default if there is no
weston.ini (as installed by the device package).
* changed spaces to tabs for consistency, general minor refactoring of
device-APKBUILDs
Placing such files in /tmp/ is an unnecessary attack vector, as
@pavelmachek showed. All udev rules, which mentioned /tmp/weston.log
do not contain any path anymore.
Logs can be read with:
logread -f /var/log/messages | grep weston
See also: <https://wiki.alpinelinux.org/wiki/Syslog>
This way we could give the user a rough idea what will be installed,
and also use this to display a short warning about long compile times
(e.g. until the plasma mobile stuff is upstreamed).
* Allow to specify a custom username in "pmbootstrap init"
* Build chroots have "pmos" instead of "user" as username now
* Installation user UID is 1000 now (as in all other Linux distributions)
* Adjust autologins
* postmarketos-base: enable wheel group for sudo, removed previous sudoers file
* Implement safe upgrade path:
We save the version of the work folder format now, in $WORK/version.
When this file does not exist, it defaults to 0.
In case it does not match the currently required version
(pmb.config.work_version), then ask the user if it should
automatically be upgraded.
* apkindex:
* Also parse the architecture field
* symlink_noarch_package:
* Renamed to symlink_noarch_packages
* Always work on all packages (so we don't need to guess which
subpackages have been generated after a certain build)
* Get invoked when running 'pmbootstrap index'
* Use 'apk index' to generate one index, where the architecture
does not get rewritten (abuild does that by default, due to
Alpine's repos not having a 'noarch' folder and diverging from
that doesn't make things easier for us). That goes super fast,
and then we know which packages are noarch packages and can
create the symlinks.
* Made output less verbose:
* Use -q for 'apk index' when calling it directly (when it gets
called by abuild we can't control that)
* Output that the APKINDEXes get reindexed only to the 'pmbootstrap
log'.
kmscube is a command line utility for testing KMS-capable GPU drivers,
which may be useful for validating DRM rendering and OpenGL ES acceleration
capabilities required by accelerated Weston/KWin on supported devices.
This removes a few globs from the mkinitramfs module copy part. This is an issue
in linux-postmarketos since it will copy gpu drivers for all possible hardware to the
initramfs.
This should be done in the deviceinfo variables for the modules instead and is
already done for the current devices that use module loading. This changes the
initramfs (uncompressed) from 16 MB to 11 MB just because the qemu graphics
drivers aren't included.
So I was wrong.. /etc/issue needs to contain the escape sequence output
by setterm, not the actual call to setterm itself. My previous testing
of this was faulty, which led me to believe the previous implementation
of this would work.