Commit Graph

1062 Commits

Author SHA1 Message Date
Oliver Smith 4e665a2190
Recreate device nodes in chroot after shutdown (#1447)
Device nodes in the chroots get created in a tmpfs, so they can be
created even if the filesystem where the chroot resides does not
support device nodes (#1317). In "pmbootstrap shutdown" we umount the
`dev` folder, which means all device nodes that were created inside
this folder are gone. This commit changes the code to actually recreate
the device nodes when using the chroot again.

Details:
* move `pmb.chroot.init.create_device_nodes` to
  `pmb.chroot.mount.crete_device_nodes`
* don't call it in `pmb.chroot.init()` anymore, but in
  `pmb.chroot.mount_dev_tmpfs()`
* Create the `null` device as well (`apk --initdb` also creates it on
  `init`, but we don't call it after `shutdown`)
2018-04-29 22:17:57 +00:00
Oliver Smith f49da75998
Fix binfmt_misc check (#1449)
We require binfmt_misc to run programs of foreign architectures (e.g.
armhf) with QEMU. This is set up by default in most distributions, but
in some (e.g. Alpine, Void) it needs to be configured manually (see
 the troubleshooting page in the wiki).

We have a check in place, which points to that troubleshooting wiki
page. However, the check was flawed, because we assumed the binfmt_misc
folder would not exist.

Thanks to @fxkrait for making the fix and for testing it!
2018-04-28 23:10:54 +00:00
Oliver Smith a1598dc55d
Fix randomized pkg providers for python < 3.6 (#1446) 2018-04-28 21:32:00 +00:00
Nikolay b90a3c1054 Add initial device support for Xiaomi Redmi Note 4 (xiaomi-mido) (#1415)
* Add initial device support for Xiaomi Redmi Note 4 (xiaomi-mido)

* Update APKBUILD

* Update APKBUILD

* Wifi support for Xiaomi Redmi Note 4

* Update APKBUILD

* Download firmware from different repo for Xiaomi Redmi Note 4

* Split up cat line
2018-04-25 11:40:16 +02:00
Oliver Smith 14e234264f
msm-fb-refresher: use initfs hook (#1438)
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
2018-04-24 21:09:53 +00:00
Sicelo e6e4682180 Fix issues with lock.sh for i3wm/N900 (#1439) 2018-04-23 21:04:31 +00:00
Oliver Smith d6391791f7
Set all of user's groups in "pmbootstrap install" (#1432)
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`.
2018-04-23 20:52:03 +00:00
Oliver Smith 9c83cdcea1
Display wiki link on dependency error (#1410) 2018-04-23 20:51:06 +00:00
j0ki a9e07049e8 samsung-i9195: WiFi support (#1324)
* firmware-samsung-i9195: new wlan subpackage
* samsung-i9195: add wlan firmware to nonfree-firmware dependencies
* firmware-samsung-i9195: change pkgver to sequential numbering.
this breaks package management. be careful when updating this package.
the old version was `201707.1`, which is higher than `1.1.0`.
2018-04-23 20:43:46 +00:00
Jacob Juric 186ecadfa6 Initial support for Motorola Moto G4 Play (motorola-harpia) (#1437)
Currently, Weston boots with a working touch interface, and USB networking.
2018-04-22 21:12:48 +00:00
Oliver Smith cace84e807
Remove uboot-tools again (upstream is fixed)
Reverts 83633a9237.
2018-04-21 20:39:25 +02:00
Nikk Saan 74fc996b40 Upgrade linux-pmos-stable to 4.16.2 (#1435)
Fix for n900 audio not working
2018-04-21 16:21:35 +00:00
Oliver Smith 1c70c35e87
GitHub templates for issues and PRs (#1434) 2018-04-21 16:17:17 +00:00
Callum A. D. Thomson 813ca0e213 Device samsung i8190 (Galaxy SIII mini) (#1428)
Working: Display, Touch, USB networking, FDE
2018-04-21 14:55:39 +00:00
alive4ever f2957c287c
xiaomi-armani: load wlan module on default runlevel
Previous post install action results in loading wlan module during
sysinit. This is not possible since wlan device is only exposed after
wcnss-wlan service. This also delays ssh startup for approximately 3
minutes.

Loading wlan module should only be done on default runlevel, after
wcnss-wlan service has been started.

Also add a reference fb.modes file, although directfb applications still
doesn't work and cause the framebuffer driver to crash.
2018-04-21 01:17:51 +02:00
Bhushan Shah 74a6a22fec
Properly style the plasma-mobile
This provides some configuration which provides better plasma mobile
experience in terms of scaling, fonts and theme
2018-04-21 00:37:57 +02:00
Bhushan Shah 3fb9a0ff06 Fix wireless on hammerhead after mainline move (#1430)
- Ship the wifi calibration data where upstream driver expects it
- Ship modules-load.conf to load wifi driver automatically

Fixes #1426
2018-04-20 17:21:22 +02:00
Oliver Smith a77a0dcc32
Add envkernel.sh: instant mainlining environment (#1424)
Changes:
* `helpers/envkernel.sh`:
  * installs everything needed for kernel compilation in the native
    chroot
  * mounts the kernel source to `/mnt/linux` inside the chroot
  * creates `/mnt/linux/.output` and chowns it to the `pmos` user, that
    folder will be used for the kernel build output
  * sets up aliases for `make`, `pmbootstrap`, `pmbroot`, `kernelroot`
* new action `pmbootstrap work_migrate`: does the interactive work
  folder migration if necessary, otherwise it doesn't output anything
  * when calling this first, we can safely use all other commands
    non-interactively without showing the output

Benefits:
* Fast setup (especially for people who are new to kernel
  compilation
  * No need to figure out distribution specific package names
    (cross compilers!)
  * No need to do a test build just to verify that the right
    packages are installed
* Less error prone
  * The right dependencies are always installed
  * `ARCH` and `CROSS_COMPILE` variables always get set automatically
    and based on `deviceinfo_arch`
  * If the build environment is broken for some reason, just zap and
    start over
* Easy to reproduce problems

Notes:
* `make menuconfig` works as well
* Sourcing was tested with `zsh`, `bash` and `fish`, it should be easy to
  extend for other shells
2018-04-19 21:27:38 +00:00
Duncan Guthrie 8927ac5c3a New UI: matchbox (#1420)
Add matchbox-window-manager, matchbox-desktop, and their associated
dependencies.
2018-04-19 19:01:02 +00:00
Bhushan Shah f62cf38f74
Remove the linux-lg-hammerhead
The King is dead, long live the King!
2018-04-19 20:22:09 +02:00
Bhushan Shah bbd93abafd
switch the lg-hammerhead to linux-postmarketos-qcom
- Currently just graphics along with weston tested
- Depend on firmware-adreno from device-lg-hammerhead
- Reduce dep of linux-firmware
- Just pull qcom, bracm and adreno firmware
2018-04-19 20:22:09 +02:00
Bhushan Shah c3e1f99148
Modify adreno firmware package
- Remove a300_*.fw as they are in linux-firmware-qcom
- Install to /lib/firmware/qcom
2018-04-19 20:22:09 +02:00
Bhushan Shah 37b80a276a
Add newer version of libdrm (2.4.91) 2018-04-19 20:22:09 +02:00
Bhushan Shah ebaca39807
Add the linux-postmarketos-qcom package
This is based on the linux-postmarketos-mainline, uses the fork of
<https://github.com/postmarketOS/linux>
2018-04-19 20:22:09 +02:00
Oliver Smith b1b5acd79d
Fix test/test_build_package.py
Tested with Travis on an extra branch before pushing to master this
time.
2018-04-19 02:29:48 +02:00
Oliver Smith 86651d6f8e
Fix building packages when git is in chroot
Building packages without git installed caused error messages from git
appearing on the screen, and I patched it upstream (see #1209).
However, this introduced a regression: when git *is* installed and the
aport folder *is not* part of a git repository (like we do it with
pmbootstrap), the build gets aborted now with git complaining that
the folder is not a valid git folder.

But the only case where this happens is, when abuild is trying to
include the git repositories' commit hash for the APKINDEX description.
This pmbootstrap commit hardcodes "postmarketOS" as APKINDEX
description, so it does not fail anymore.
2018-04-19 01:20:41 +02:00
Oliver Smith 83633a9237
Temporarily package uboot-tools as workaround
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
2018-04-17 17:31:09 +02:00
Oliver Smith ca20ead505
"pkgrel_bump --auto": Handle subpackages properly (#1388)
`pmbootstrap pkgrel_bump --auto` automatically increases the pkgrel for
packages linking against libraries, which don't exist anymore (because
the soname has been changed). The feature is explained in detail in

The previous implementation did not detect soname breakage, when a
subpackage linked against a certain library, but the main package
did not (e.g. `qt5-qtbase-mysql` and `qt5-qtbase`). This was, because
we iterated over the aports/* to find the packages to be checked.

To fix this, we are iterating over the packages found in the APKINDEX
files instead (of both the locally compiled packages and the downloaded
index from the pmOS mirror).

Details:
* `pmb/helpers/pkgrel_bump.py`:
  * Rewrite `auto_apkindex_package()` to act upon a given parsed
    `aport` and `apk` (from the index) instead of finding the `apk`
    dict by itself (we need it earlier anyway).
  * Rewrite `auto()` to iterate over APKINDEX files instead of aports
    * Skip packages already found, so the `pkgrel` does not get
      increased multiple times when the same package was found in
      multipe index files.
* Put the package name at the beginning of the log messages to make
  them more readable
* testdata: Create a new `testsubpkg` aport, where only the subpackage
  links against `testlib`
* Adjust testing code to test everything with `testsubpkg` as well.

NOTE: This makes the command a bit slower, but we could improve
performance again by smart caching of `pmb.parse.apkindex.depends()`.
This could come in a future PR, the important part here is that the
command is bug-free again with this fix.
2018-04-15 21:34:40 +00:00
Sicelo 4388c6614d Less Firmware Dependencies for N900 (#1414) [skip ci] 2018-04-15 21:33:41 +00:00
Bart Ribbers 2f4295c731 Update KDE Frameworks to 5.45 (#1413) 2018-04-15 21:24:48 +00:00
fjmax 5b07fb4ff8 Initial support for motorola-athene (#1412)
Working: USB network, display
Known not working: "pmbootstrap flash kernel" (kernel size too big)
2018-04-15 18:15:34 +00:00
Mayeul Cantan a38c44b122 Add initial device support for Sony Xperia T3 (sony-seagull) (#1389) 2018-04-13 18:04:13 +00:00
Oliver Smith 14c4845838
initfs hook_ls: make clear what's not installed (#1409) 2018-04-11 22:26:48 +00:00
Oliver Smith 06b1f3e58f
Update musl-* to upstream (1.1.19-r7) 2018-04-11 23:45:58 +02:00
NotKit f6a67e0215 Package libhybris (#1402)
As discussed in #1039, I want to split feature/hybris branch into
smaller sensible pull requests.

This is the first one that simply adds android-headers and libhybris
packaging. libhybris allows apps compiled with glibc (musl in our case)
to load Android libraries that utilize bionic libc, which is used to
load proprietary userspace drivers.

The package isn't very useful on its own and requires core (non-UI/Java)
Android services to be running in some way - either in Halium-style LXC
container or in same root as main OS with modified init (Mer/Sailfish do
it this way). Both ways are tested to work in postmarketOS.

libhybris also includes some tests, not all of them are known to be
representative, but test_vibrator and test_egl_configs are usually good
indicators if system is set up correctly.
2018-04-10 21:13:42 +00:00
Oliver Smith 7a6cb98cc7
Update musl-* to upstream (1.1.19-r6) 2018-04-10 22:18:07 +02:00
Nick Boone 9415754f3d Initial Work for HTC One M8 Port (#1392)
* Progress can be followed in #1206
* Kernel boots with device tree from LineageOS and can
  be installed by android recovery zip
* Networking comes up at boot but there's not display yet
2018-04-09 22:11:32 +00:00
Bart Ribbers c1ed964a5e Bump pkgrel due to libressl soname upgrade (#1400)
Affected packages:
* qca-qt5
* qt5-qtbase
* libsamsung-ipc
2018-04-09 16:29:57 +00:00
Daniele Debernardi 400562a753 Ask to copy SSH public keys during init (#1394) 2018-04-08 14:12:01 +00:00
BK d79e13d226 Add helpers/envsetup.sh (#1390)
Usage:
$ source helpers/envsetup.sh
It sets up the aliases `pmbootstrap` and `pmbroot`.
The latter changes the directory to the pmbootstrap folder.
2018-04-08 12:58:10 +00:00
Lionel Duboeuf 002993b324 update oneplus2 kernel (#1399) 2018-04-06 18:37:23 +00:00
Daniele Debernardi b7b1fe9ef7 flasher: install depends of the method specified in the arguments (#1393) 2018-04-04 23:48:39 +00:00
Oliver Smith 82b9ea5af6
Remove sdl2 aport again (fix is merged in Alpine) 2018-04-05 00:08:19 +02:00
Michael Hamann ae846a1cff
Add SDL2 from Alpine Linux, force-enable directFB 2018-04-04 23:30:12 +02:00
Alexandroid99 c52ba8852e New device: htc-flounder (#1309) 2018-04-04 00:27:11 +00:00
Oliver Smith b66b5dcc34
pmbootstrap init: kernel selection / remove linux-pmos-lts (#1363)
* 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.
2018-04-03 23:50:09 +00:00
Decatf b7d4e2c11e Update linux-samsung-p4wifi to kernel 4.16 (#1386)
* Specify a device tree binary file for p4wifi kernel
Previously the p4wifi kernel was using Android patches which append the
dtb to zImage in the kernel makefile.

Now follow mainline kernel convention of leaving the zImage and dtb
separate. Follow postmarketOS convention of specifying dtb file in
deviceinfo.
* Use linux-postmarketos-mainline APKBUILD build functions for p4wifi
* Update linux-samsung-p4wifi to kernel 4.16
- Use mainline broadcom bluetooth hci driver
- Use mainline atmel_mxt_ts driver
- Use mainline stmpe811 mfd driver and add stmpe811 ADC block
2018-04-03 23:29:11 +00:00
Decatf ed449f8faf Update busybox-static-* to upstream (1.28.2-r3) (#1387) 2018-04-02 23:33:34 +02:00
Daniele Debernardi 9cfda8a7e9 apk-file: Update to version 0.3.0 and new repository (#1382) 2018-04-02 00:02:12 +00:00
Oliver Smith 7e93691e27
qt5-qtbase: bump pkgrel because of soname bump
This doesn't exist anymore:
so:libmysqlclient.so.18
2018-04-01 01:38:23 +02:00