Commit Graph

897 Commits

Author SHA1 Message Date
Oliver Smith d261034349 Package kernel-scripts separately (#1234)
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.
2018-02-16 22:00:37 +01:00
Oliver Smith 7c49ce32d4 Various linux packages: Fix broken dev subpackage (#1228)
Fixes #1227.
This also updates the hash in linux-postmarketos-mainline, because the
hash changed upstream (they updated their git version server-side?).
2018-02-15 00:20:40 +01:00
Oliver Smith ceac21766f
check_checksums.py: Non-zero exit on build error
Fixes #1124.
2018-02-14 00:12:46 +01:00
Pierre Rudloff 42fadee584 New gp-peak device (Geeksphone Peak) (#1214)
It boots and SSH works but the screen stays black.
2018-02-12 20:03:35 +00:00
Michael Hamann 80ab996161 New device: Samsung Galaxy Note 8.0 (WiFi) n5110 (#1219)
This port includes:
* Weston including touch and WiFi (using e.g. firmware-samsung-i9305) works.
* Touchscreen calibration for osk-sdl
* Sound configuration
* Udev rules for touch and pen, pen works!
2018-02-12 19:20:49 +00:00
Oliver Smith 57afbda3b9
Bump version to 0.6.0 2018-02-11 12:36:47 +01:00
Lucas Ramage 42018f8014 mkbootimg: replace Python version with osm0sis' C version (#1193)
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.
2018-02-11 11:41:41 +00:00
Michael Hamann c038566fef devicepkg-dev: Generate calibration matrix for libinput (#1205)
* 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.
2018-02-11 10:20:31 +00:00
alive4ever e771de619d Add triggerhappy: HID input device handler (#1211)
More information:
<https://wiki.postmarketos.org/wiki/Troubleshooting:HID_buttons>
2018-02-11 10:09:18 +00:00
Oliver Smith fc4d89a0ec
Update musl-* to upstream (1.1.18-r7) 2018-02-10 19:07:17 +01:00
Pavel Machek bca7fc2099 Update unicsy-demo to 0.4.6 (#1215) 2018-02-09 20:41:15 +00:00
Oliver Smith 3fe75ddb56
Fix screwed up progress bars in Travis output (#1213)
Right now, they appear on screen when using --details-to-stdout. This
does not work well with Travis CI and screws up the log.

Disabling the progress bars in abuild works just like Alpine does it in
their Travis CI script: Exporting SUDO_APK as
"abuild-apk --no-progress" instead of "abuild-apk".

test_check_checksums.py: Run "pmbootstrap build_init" before building
any packages, so it is a bit less verbose (downloading the APKINDEX
files etc.). Later we run the build init code again (because we use
--strict while building the packages), but then the APKINDEX files
are already present. So overall the log is a bit shorter before the
building starts. (It is still logged to the logfile, which gets
printed on error anyway.)
2018-02-09 18:43:58 +00:00
Bart Ribbers c232c98851 Update Plasma to 5.12 (#1208) 2018-02-06 23:18:45 +00:00
Oliver Smith bd4ebb3473
gitignore: Add pytest cache 2018-02-06 23:10:25 +01:00
Daniele Debernardi 7b01e973e1 [fbdebug] Add panning functionality (#1207) 2018-02-06 21:21:25 +00:00
alive4ever d0acbca4f2 Initial porting effort to Xiaomi Redmi 1S (armani) (#1204)
The device is Xiaomi Redmi 1S, based on MSM8296 platform, with Qualcomm
Snapdragon 400.  The kernel is from lineageOS (3.4.0). Some additional patches
are needed for successful compilation. The screen dimension is 720x1280.

The touchscreen device name is ft5x06_i2c. Use this name for udev
instead of hardcoded device path. Also add a workaround for red
screen weston by setting weston_pixman to 2
The screen doesn't refresh. Enabling msm-fb-refresher as suggested.

Add udev rule to indicate whether the device is in charging state.
Green led indicates that the device is charging, whereas red light
indicates that the device is discharging.

For prima wlan module to work, an initialization procedure is needed (
echo 1 > /dev/wcnss_wlan ), before loading the prima wlan module
(wlan.ko). Also build the prima wlan as module. 

Xiaomi Redmi 1S is using pronto wlan module, which needs some firmware
to run. Add the required wifi firmware to enable the wifi interface.

Add an openrc service to load wlan module after wcnss_service is
initialized.
2018-02-05 19:58:08 +00:00
Daniele Debernardi 16a4ce10c8 fbdebug: Add initial framebuffer debug tool (#1196) 2018-02-03 19:09:59 +00:00
ashirviskas 49de8f27a2 [nextbit-robin] Added msm-fb-refresher so display is now working properly (#1197) 2018-02-03 12:00:52 +00:00
Emil Lauridsen cb8a0c996d Basic Xperia Z3 Tablet Compact support (#1200) 2018-02-03 11:34:51 +00:00
Pavel Machek bf3aa799e5 gps-nokia-n900: Package initial version (#1198) 2018-02-03 11:19:07 +00:00
Oliver Smith acd7de24d3
Update musl-* to upstream (1.1.18-r6) 2018-02-03 11:58:04 +01:00
Daniele Debernardi b4843ef7e6 Add device Samsung Galaxy S5 (samsung-klte) (#1163) 2018-02-02 19:59:14 +00:00
Oliver Smith 5e85d72ca0
Testsuite: Run UIs in Qemu and check running processes and more (#982)
* 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
2018-02-02 00:16:29 +00:00
Oliver Smith 5eb75afc08
Fix invalid /etc/apk/repositories entry on device (#1189)
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!)
2018-02-01 22:44:20 +00:00
Oliver Smith e8c27795a8
Remove rest of 'pmbootstrap challenge' left overs (#1173)
Follow up to #1162.

* `pmb.build.buildinfo()`: Used to record the build environment. It is
  flawed because it scans the repo APKINDEX files instead of using the
  actually installed packages list. When it was implemented we were not
  able to do the latter. After this is removed, `pmb.parse.depends` can
  be simplified (it needs to be rewritten for #1122).
* `pmb.helpers.repo.diff()` and `pmb.helpers.repo.files()`: These were
  used exclusively by `pmb.build.buildinfo()`, to learn about which
  files have been changed in the local repository folder after a
  package was built. The idea was, that we could find subpackages that
  way. But this information is present in the installed package list as
  well, which is a much cleaner approach.
2018-02-01 22:03:21 +00:00
Alex Roth 987ec7a00a Luna: pmOS default wallpaper via symlink (#1191) 2018-02-01 21:52:48 +00:00
Pavel Machek b0869380ff N900: Attempt to fix touchscreen being upside-down (#1183) 2018-02-01 21:47:12 +00:00
Oliver Smith a5d2b2b064
Fix: Native arch APKINDEX downloaded twice (#1190)
Nowadays pmb.config.build_device_architectures holds the native
architecture as well, so we don't need to explicitly download the
native architecture APKINDEX.
2018-02-01 21:27:17 +00:00
Daniele Debernardi c925791387 Fix typo in check_arch function (#1195)
Added a missing space to separate words in the log message
2018-02-01 21:02:04 +00:00
Oliver Smith 77701ac484
mkinitfs: Fail on missing depends / better usability in general (#1133)
* 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
2018-01-31 19:39:09 +00:00
Oliver Smith 0f5056f6b9
Fix pmbootstrap zap -m / various zap improvements (#1166)
zap -m:
* APKINDEX parsing: parse the "origin" field as well, so we know
  where a subpackage comes from
* pmbootstrap zap -m: properly delete all packages, that do not
  have an aport or where the aport has another version. This also
  works with subpackages now,
  we use the origin field to resolve it.
* Only reindex when packages have been deleted in "zap -m"

zap in general:
* Show the amount of cleared up space after the deletion instead
  of "Done"
* Print "Shutdown complete" to "pmbootstrap log" instead of stdout
  (we need to call it twice during zap now to get the space
  calculation right)
* Add `--dry` argument to `pmbootstrap zap` (this was very useful
  for debugging) to list the packages/chroots that would get
  deleted
* Roughly output the command that would get executed to delete
  files, so it's obvious what's going on in --dry mode. (% rm ...)
2018-01-31 19:34:02 +00:00
Peter Mann 8f099d3506 Add initial support for Zenfone 5 (t00f/t00j) (#1176)
Current status:
  - flashing only manually (intel phones have different bootimg format)
  - usb networking works
  - xorg works using fbdev
  - packages needed for wayland are not available for x86
  - touch works in xorg and osk-sdl
2018-01-29 20:52:20 +00:00
Pavel Machek 977d578925 Nokia N900: add right keymap for X11. (#1177)
Fixes #991.
2018-01-29 19:33:32 +00:00
Oliver Smith 80562bc6a7
Update busybox-static-* to upstream (1.27.2-r8) 2018-01-29 20:01:24 +01:00
Oliver Smith 3c59126bc1
Remove timestamp based rebuilds (#1174)
If you want to build a package without changing the version number,
please use `--force` from now on. For example:

    pmbootstrap build --force hello-world

Prior to this commit, changes were detected automatically (timestamp
based rebuilds). However, that feature does not work as expected with
the binary package repository we have now, and depending on how you use
git, it has never worked. Close #1167, close #1156, close #1023 and
close #985. This commit also mentions --force when a package is up to date,
but the user requested to build it.
2018-01-28 23:27:33 +00:00
Pavel Machek bdeec7a255 Optional --rsync parameter for pmbootstrap install only copies the diff (#1151)
Should reduce wear of sd card. Example usage:
pmbootstrap install --sdcard=/dev/mmcblk0 --no-fde --rsync
More rsync output with pmbootstrap -v.
2018-01-28 23:25:21 +00:00
Oliver Smith cd7280e1ee
Bump version (last version has been tagged) 2018-01-27 18:53:27 +01:00
ashirviskas e203c42d5b Nextbit Robin booting. SSH over USB working (#1145) 2018-01-27 14:52:34 +00:00
Oliver Smith 566da1718d
version.py: fix validation of 6.0_0002 (#1160) 2018-01-25 18:23:55 +00:00
Alfie Day cad39be733 Enable xwayland on t2m-flame (#1168)
postmarketos-demos runs fine with xwayland enabled
2018-01-25 18:12:45 +00:00
Oliver Smith 0479031f7e
Remove lots of legacy 'challenge' code (#1162)
Preparation for #1122.

* `pmb.parse.apkindex.parse()`, removed strict parameter: This used to raise
  an exception when two entries in the apkindex provided the same package.
  Turns out this is *not* invalid after all, two packages can provide the same
  soname for example (e.g. libhybris, mesa-egl). In an APKINDEX, sonames are
  listed as they were packages ("so:libjpeg.so.8" etc.).
* Remove `pmbootstrap challenge` leftover code from reproducible builds effort,
  which was a dead end. This code uses the broken strict feature.
2018-01-25 18:08:39 +00:00
Ryan Murthick 7f9fc68729 Add initial support for the Moto G 2013 (falcon) (#1165)
Currently working:
 - flashing both kernel and system
 - boots into weston with touch support
 - can also ssh in via usb
2018-01-24 23:52:27 +00:00
Bart Ribbers 3c827885a2 Update KDE Frameworks to 5.42.0 (#1164)
Fixes #979: Top drawer and background missing on first boot
2018-01-24 23:23:36 +00:00
Oliver Smith 34d46b2fe3
static_code_analysis.sh: Find CHANGEMEs in APKBUILDs (#1161) 2018-01-24 21:31:07 +00:00
NotKit 67eac031b1 Update Maemo packages (fixes #1148) (#1157) 2018-01-24 20:45:47 +00:00
Oliver Smith 759c41dba0
testcases_fast.sh: Make sure we have a valid device (#1140) 2018-01-24 20:14:43 +00:00
Oliver Smith 1678d089c9
aportgen linux: Also remove -Werror in Kbuild files (#1139)
We discovered that one kernel had it in a Kbuild file in #1124.
2018-01-24 20:07:47 +00:00
Daniele Debernardi 845d946389 Enable running pmbootstrap on x86 architecture (#1155) 2018-01-24 00:56:11 +00:00
Daniele Debernardi 3a01537332 Delete remaining legacy "repack" code path (#1154) 2018-01-23 21:23:33 +00:00
Oliver Smith e5ed3f86d0
Fix error message suggesting to run invalid command "zap -a" (#1132)
The message showed up, when you apk-static download could not be
verified. What the user needs to do instead is checking if openssl
is installed, and possibly delete the http cache ("zap -hc").
2018-01-23 01:03:31 +00:00