Commit Graph

1166 Commits

Author SHA1 Message Date
Oliver Smith dc624aecea
Mount tmpfs in chroot's /dev folders (#1317) 2018-03-10 14:24:16 +00:00
Joey Hewitt 0269073cc1 i9195: add touchscreen to deviceinfo (#1313) 2018-03-10 13:59:25 +00:00
Ethan R. Jones d9ebfda2c7 Add ZTE Kis3 / ZTE Open C (#1311) 2018-03-10 13:52:09 +00:00
Oliver Smith af4b817c21
Skip virtual packages when parsing APKINDEX (#1278)
Since PR #1247 we are using the virtual package `.pmbootstrap` to mark
packages as not explcitly installed. In case `pmbootstrap` doesn't
finish the installation because of a bug, the `.pmbootstrap` virtual
package may not get uninstalled.

As virtual packages don't have the "timestamp" attribute set in the
package database (which indicates when the package was built), the
APKINDEX parser fails to parse them.

Changes:
* pmb.parse.apkindex.parse_next_block(): don't require the "timestamp"
  attribute to be set (but the arch attribute instead, which is always
  present)
* pmb.parse.apkindex.parse(): when a block does not have a `timestamp`
  attribute, skip it, because it must be a virtual package.
* add test cases for both functions with a package database that
  contains a virtual package.
2018-03-10 13:15:30 +00:00
Daniele Debernardi 4cad170844 [nokia-n900] Add swiss german keyboard layout (#1310) 2018-03-10 13:08:33 +00:00
Oliver Smith e72afc53fd
pmbootstrap zap -m: delete outdated packages too (#1306)
`-m` is for deleting local compiled packages, for which there is no
aport with the same version. Prior to this change, this only worked
for packages where no aport exists, or for packages that are newer
than the aports.

That is, because we used the usual APKINDEX parsing logic, which
ignores old packages in the APKINDEX and only returns the one with the
highest version (that makes sense during dependency resolution).

Changes:
* New `pmb.parse.apkindex.parse_blocks()` function that returns a raw
  list of blocks, instead of the dict with removed duplicates with
  lower version you get from the usual `.parse()` function.
* Renamed each of the zap flags and their descriptions to make clear
  what they are doing now.
  ```
  short  long (old)         long (new)
  -p     --packages         --pkgs-local
  -m     --mismatch-bins    --pkgs-local-mismatch
  -o,    --old-bins         --pkgs-online-mismatch
  ```
2018-03-10 12:08:02 +00:00
Oliver Smith 3510a4868f
Fix building packages by provides name (#1303)
Use case: `mkbootimg` provides the `unpackbootimg` package. When
running `pmb.chroot.apk.install(args,"unpackbootimg")`, it was not
able to properly build the package.

Reproducing the error:
```
sudo rm ~/.local/var/pmbootstrap/packages/x86_64/mkbootimg*
pmbootstrap index
pmbootstrap --mirror-pmOS="" chroot --add=unpackbootimg
```

Or alternatively (simpler but less illustrative):
```
pmbootstrap build unpackbootimg --force
```
2018-03-08 21:30:55 +00:00
Oliver Smith 508f352457
Update musl-* to upstream (1.1.19-r1) 2018-03-07 23:33:47 +01:00
Decatf 75e973a4d0 Fix gtk+2.0-maemo alternate subpackages (#1299)
Specifying alternate subpackages in the provides variable of the main
package means that the main package itself is providing an alternate for
the subpackages (e.g. gtk+2.0-maemo provides an alternate gtk+2.0-dev).
The provides variable must be set for each subpackage. Fixes #1284.
2018-03-07 22:38:02 +00:00
Daniele Debernardi 94306b51ee deviceinfo: remove external_disk_install and external_disk, use external_storage instead (#1301)
* deviceinfo: remove external_disk_install and external_disk, use external_storage instead
* Complain when external_disk* is used
2018-03-07 22:35:02 +00:00
Bart Ribbers 915dc8a049 Update Plasma to 5.12.3 (#1297) [skip ci] 2018-03-06 22:34:59 +00:00
Bhushan Shah 4bc8b06011 Depend on libepoxy-dev from kdeclarative (#1296) [skip ci]
Fixes the https://phabricator.kde.org/T7808
2018-03-06 22:34:08 +00:00
Luca Weiss 865e4bb1da Kernel updates (#1295) [skip ci]
* linux-postmarketos-mainline 4.16_rc4
* linux-postmarketos-lts 4.14.24
2018-03-06 22:32:56 +00:00
Daniele Debernardi aa4a01f14e Implement charging mode (#1285)
* 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
2018-03-05 22:59:23 +00:00
Daniele Debernardi db8c2d8407 Remove /etc/network/interfaces and networking service from device packages (#1293)
This is not necessary anymore since there is now NetworkManager.
2018-03-05 21:18:13 +00:00
Oliver Smith af6913ab06
Fix build --src for foreign-arch chroots (#1282)
The `suffix` argument was not specified in chroot commands executed in
`pmb.build._package.override_source()`. Because of that, it was not
possible to use "build --src" when compiling in a non-native chroot,
for example:

```
$ pmbootstrap build hello-world --arch=armhf
...
(native) % rm /tmp/APKBUILD.append
rm: can't remove '/tmp/APKBUILD.append': No such file or directory
```
2018-03-05 21:04:28 +00:00
Decatf 0f413db387 New device: Samsung Galaxy Tab 10.1 (p4wifi) (#1279) 2018-03-05 20:55:05 +00:00
Oliver Smith ac2a0b2749 convert dict.keys() to list() (#1290) 2018-03-04 21:10:27 +01:00
Oliver Smith 99127111a1
Only download APKINDEX for relevant architectures (#1201)
### Only download APKINDEX for relevant architectures
We're downloading the APKINDEX files for all architectures supported by
postmarketOS currently (x86, x86_64, armhf, aarch64). Most of the time,
we only need it for the native and device arch, so this PR reduces the
downloaded files to what is really necessary.

### Intuitive pmbootstrap update logic
* pmb.helpers.repo.update():
  * Default is updating all arches where the APKBUILD files exist
  * Add existing_only parameter
  * Return True when files have been downloaded
  * Properly print which arches will be updated
  * Print update reason only in verbose log
  * Add and improve comments
* pmb.parse.arguments(), update action:
  * Add --non-existing parameter
  * Default for --arch is None (instead of arch.native)
* pmb.helpers.frontend.update():
  * Inform about --non-existing if no APKBUILDs have been updated
2018-03-04 13:44:27 +00:00
Oliver Smith e6bb96426b
linux-postmarketos-mainline: fix weston (x86_64) (#1283)
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.
2018-03-04 11:15:47 +00:00
Martijn Braam 6e69c8d905 postmarketos-base: Enable NetworkManager by default (#388) 2018-03-04 11:07:21 +00:00
Filip Matijević 0abf1557fe Fix Nokia N9 build and update kernel (#1281)
* Remove unneeded dtb entry from deviceinfo
* Update Nokia N9 to kernel v4.16-rc3
2018-03-03 11:01:35 +00:00
Bart Ribbers a1ae2b7084 Add NetworkManager and PulseAudio applets to Plasma (#1040)
* 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.
2018-03-02 21:07:18 +00:00
Luca Weiss 50e293f035 Kernel updates (#1280)
* linux-postmarketos-stable 4.15.7
* linux-postmarketos-lts 4.14.23
2018-03-01 23:53:19 +00:00
Oliver Smith 0f15951023
Always prefer native/device arch when building (#1277)
In case the user does not specify for which arch packages should be
built with `pmbootstrap build`, we detect it automatically.

Previous logic was, that if the APKBUILD's arch is "all" or "noarch",
then prefer the native arch, and otherwise use the first one in the
list of available arches.

New behavior is, that we also check if the list of possible arches
contains the native arch (and if that fails, the device arch). If that
is the case, we return the native/device arch instead of the first one
in the list.

### Use case

The arch from `gcc-armhf` and similar packages (as generated by
`pmbootstrap aportgen`) used to be "all", but is nowadays a specific
list of arches. This means, that after updating the `gcc-armhf` and
`gcc-aarch64` packages, and calling `pmbootstrap build gcc-armhf`,
it will try to build `gcc-armhf` for `aarch64` instead of the native
architecture, because that is the first one listed.
And since compiling to `aarch64` requires `gcc-aarch64`, it will build
that for the native architecture first.

So you're asking for `gcc-armhf` and it compiles `gcc-aarch64`, which
is very confusing (see #1272).
2018-03-01 20:04:51 +00:00
Oliver Smith 25256ae4a1
Bump pkgrel of qt5-qtbase and db8
Upstream soname bumps, these don't exist anymore:
* so:libicui18n.so.59
* so:libicuuc.so.59
2018-02-28 21:49:48 +01:00
Daniele Debernardi e694e00d85 Use default partitions in odin export if not specified in deviceinfo (#1271) 2018-02-28 01:28:36 +00:00
Oliver Smith c0eb991073
Update gcc-* to upstream: 6.4.0-r7 2018-02-27 23:24:21 +01:00
Bart Ribbers 74217d6001 Package the Plasma phone dialler (#1270)
* Package everything required for the Plasma dialler

* Improve build scripts

* Bump pkgrel of plasma-phone-components
2018-02-27 21:06:46 +01:00
Oliver Smith 34b95a7e8b
postmarketos-mkinitfs: don't fail without deviceinfo [skip ci] (#1269)
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).
2018-02-26 23:57:56 +00:00
Bart Ribbers 92b11bf610 Update KDE Frameworks to 5.43.0 (#1265) [skip ci] 2018-02-26 23:27:50 +00:00
Luca Weiss f4619cccb1 Kernel updates (#1267) [skip ci]
* linux-postmarketos-stable 4.15.6
* linux-postmarketos-lts 4.14.22
* linux-postmarketos-mainline 4.16_rc3
2018-02-26 23:27:28 +00:00
Oliver Smith ab2fde4fef
Make nonfree depends optional part 2: device pkgs (#1268)
* Add nonfree_firmware subpackage to all devices, that depend on
  nonfree firmware.
* Some packages were depending on `linux-firmware`, but without having
  Wifi working. Removed that dependency as it was probably added by
  accident. If it was really necessary, chosing the appropriate
  split linux-firmware package (e.g. linux-firmware-brcm) is better
  anyway (that has been changed recently in Alpine and is possible
  now).
* Add a test case that makes sure we don't have firmware depends
  without subpackages in device aports anymore.
2018-02-26 22:11:44 +00:00
Luca Weiss b6bf3176e2 Add nonfree-firmware subpackage for fp2 (#1261)
Also removes linux-firmware from device package as it
was probably never used.
2018-02-26 20:53:22 +00:00
Daniele Debernardi 20e850c5aa Include fbdebug tool in debug-shell hook (#1266) 2018-02-26 20:32:01 +00:00
pikpok d44776e2cb New device: Moto G 4G (2013) (#1264) 2018-02-26 20:26:47 +00:00
Oliver Smith 937686d164
Don't mark all packages as explicitly installed (#1247)
pmbootstrap does dependency resolving on its own, and passes the list
of resolved packages to apk when we want it to install something. The
reason was outlined in #129:

> fixing #120: packages do not get updated in "pmbootstrap install"
> after they have been rebuilt. For this to work, we specify all
> packages explicitly for abuild, instead of letting abuild do the
> resolving.

This new PR fixes #1212 (which noted that all of these dependencies
were explicitly marked for installation) by doing the following:
1. All packages and dependencies get attached to the virtual package
  .pmbootstrap instead of world
2. We install the packages (without depends) explcitly
3. .pmbootstrap gets removed, which means that all packages from 1.
  stay installed, but are no longer marked as explicitly installed.
  They will get removed automatically, when the depending packages get
  removed.

In addition, the mechanism for replacing the package of locally built
packages with their full path, was broken and has been fixed in this
commit. This is necessary to update packages of the same version with
apk.
2018-02-25 20:49:47 +00:00
Luca Weiss 6b9e7ecf75 qemu: allow the user to specify the kernel flavor (#1256) 2018-02-25 19:20:22 +00:00
Oliver Smith 948b5af09b
device packages: depend on postmarketos-base (#1258)
* 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
2018-02-25 18:40:54 +00:00
Pierre Rudloff 26f0e2d045 infocus-flatfish: Correct framebuffer mode (#1262) 2018-02-25 17:47:04 +00:00
Attila Szöllősi e4875e54fa Fix menuconfig arch check (#1259)
We don't use 'arch="all"' in our kernels anymore (that does not make sense,
since each arch needs its own kernel config). This patch fixes the menuconfig
code to work with multiple values in the "arch" field.
2018-02-25 17:44:01 +00:00
Joey Hewitt cd8b190bc3 samsung-i9195: fix kernel config (#1260)
It lacked some hardware config, such as the USB switch.
With this change, I was able to SSH over the USB network.

I based this off of LineageOS 14.1's config file from its
build root. I think we were missing the secondary config
file
(TARGET_KERNEL_VARIANT_CONFIG := msm8930_serrano_eur_lte_defconfig
in BoardConfig.mk).
2018-02-25 17:32:35 +00:00
Oliver Smith ad5a0d4294
Make proprietary drivers optional (1/2): pmbootstrap changes (#1254)
Here are the changes necessary in pmbootstrap to make proprietary
software installed onto the device (firmware and userspace drivers)
optional (#756). To full close the issue, we need to apply this concept
to all device packages we already have in a follow-up PR.

Changes:
* New config file options nonfree_firmware and nonfree_userland, which
  we ask for during "pmbootstrap init" if there are non-free components
  for the selected device.
* We find that out by checking the APKBUILD's subpakages: The non-free
  packages are called $pkgname-nonfree-firmware and
  $pkgname-nonfree-userland.
* During "pmbootstrap init" we also show the pkgdesc of these
  subpackages. Parsing that is implemented in
  pmb.parse._apkbuild.subpkgdesc(). It was not implemented as part of
  the regular APKBUILD parsing, as this would need a change in the
  output format, and it is a lot *less* code if done like in this
  commit.
* pmb/parse/apkbuild.py was renamed to _apkbuild.py, and
  pmb/install/install.py to _install.py: needed to call the function in
  the usual way (e.g. pmb.parse.apkbuild()) but still being able to
  test the individual functions from these files in the test suite.
  We did the same thing for pmb/build/_package.py already.
* Install: New function get_nonfree_packages() returns the non-free
  packages that will be installed, based on the user's choice in
  "pmbootstrap init" and on the subpackages the device has.
* Added test cases and test data (APKBUILDs) for all new code,
  refactored test/test_questions.py to have multiple functions for
  testing the various questions / question types from
  "pmbootstrap init" instead of having it all in one big function.
  This allows to use another aport folder for testing the new
  non-free related questions in init.
2018-02-24 21:49:10 +00:00
Bart Ribbers 2e30fa4281 New device (Jolla Phone) (#1245) 2018-02-24 18:46:54 +00:00
Luca Weiss 2f78dad318 Kernel updates (#1253)
* linux-postmarketos-lts 4.14.21
* linux-postmarketos-stable 4.15.5
2018-02-24 08:34:42 +00:00
MoreRobustThanYou b661fd957f Patch amazon-thor's kernel to properly set the RGB mode (#1252) 2018-02-24 08:25:32 +00:00
Pierre Rudloff 64c8f39e82 New device: infocus-flatfish (#1251)
It boots and display/touchscreen partially work
(the framebuffer only fills a part of the screen).
2018-02-24 08:17:38 +00:00
Oliver Smith 8f5ffe0589
APKINDEX not found: Only show in verbose log (#1250)
The message appears 20 or so times in a row when setting up a new
chroot. Right now we log it into the debug log (which is what
"pmbootstrap log" and "pmbootstrap --details-to-stdout" show). This
is annoying for normal pmbootstrap usage, and really clutters up the
Travis output.

This commit changes the log level to verbose, so it only shows up
when "-v" is passed to pmbootstrap.
2018-02-24 08:03:34 +00:00
Pierre Rudloff 5514584f71 gp-peak: Add support for osk-sdl and audio (#1243)
* 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
2018-02-22 23:36:24 +00:00
Oliver Smith 68c3be8f55
Update musl-* to upstream (1.1.19-r0) 2018-02-22 23:44:37 +01:00