* 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?).
Closes#441. Adjust bootimg_analyze code:
* Install mkbootimg (which now provides unpackbootimg) instead of
unpackbootimg. In theory, pmbootstrap should recognize this
automatically, however right now it does not yet handle this case.
* The file names of the extracted files have changed.
* Automatically generate a calibration matrix for libinput
This takes the calibration matrix for wayland and divides the pixel
offsets by the device width/height.
* Bump pkgrels of devices using devicepkg-dev
This causes new packages to be generated, using the new devicepkg-dev
version.
* Testsuite: Run UIs in Qemu and check running processes (and other changes)
* When `pmbootstrap qemu` gets killed, it now takes down the Qemu process with it
* `test/check_checksums.py` got a new optional `--build` parameter, which makes
it build all changed packages instead of just checking the checksums
* We run this before running the testsuite now, so all changed packages get
built before running tests (otherwise tests would hang without any output
while a changed package is building)
* New testcase, that zaps all chroots, installs a specific UI (xfce4 and
plasma-mobile currently, easy to extend), runs it via Qemu and checks the
running processes via SSH.
* Version checking testcase: rewritten to include Alpine's testsuite file in
our source tree, so we don't need to clone their git repo anymore. Now it
is enabled for Travis.
* All this gives us a nice 10% code coverage boost
* Increased the `hello-world` pkgrel to verify that the Travis job is working.
* Various fixes
* Build device-packages for the device arch and don't raise an
exception, but print a note if --ignore-depends is not specified
and therefore the kernel gets installed, too.
* Don't use --force when building in Travis (because abuild doesn't
check the checksums then. Bug report on the way.)
* Don't run the building process in the background, but wait for its
completion
* Exit with 1 when showing usage in check_checksums.py
It used to have an entry for /mnt/pmbootstrap-packages, which only
makes sense while working on the chroot with pmbootstrap. After the
installation on the device, there's no repo in that path.
Furthermore, empty lines were added to the recovery installer script
for readability (thanks @ata2001!)
* Fail if mkbootimg/uboot-tools are not installed, but creating a
boot.img file / u-boot legacy image was requested via deviceinfo
(fixes#312)
* Fail if /boot/dt.img is missing, but we have a qcdt device
* Fail if the dtb file specified in deviceinfo does not exist
* Fail if mkbootimg etc. exit with error code
* Don't try to add the ext4 module into the initramfs. We always
compile it into the kernel. Instead, kconfig_check makes sure it
is enabled now. (fixes#1037)
* Add a note that modprobe warnings can be ignored mostly
Fixes#893. Changes:
* New action: "pmbootstrap pkgrel_bump"
* pmbootstrap detects missing soname depends when trying to install
anyting, and suggests "pkgrel_bump --auto" to fix it
* Testcase test_soname_bump.py checks the pmOS binary package repo
for soname breakage, so we see it when CI runs for new PRs
* libsamsung-ipc: bump pkgrel because of soname bump
Add a blobtools option to the deviceinfo file for creating specific
blobs for the Asus TF101 tablet. This will make it easier to flash
afterwards with ADB.
This is for making a kernel image for the TF101 easier. See also:
ttps://github.com/postmarketOS/pmbootstrap/pull/1103#issuecomment-357035481
The TF101 does not support normal Android boot images and instead needs
a blob to be created.
Also added the watchdog-kick package:
Some devices (namely Nokia N9/950) use more than one watchdog, and
watchdog-kick package kicks all of /dev/watchdogs? every 10 seconds so
they don't reset the device
* 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).