Can't build several device- packages in one build command
Reproducer:
$ pmbootstrap build --force --strict --arch aarch64 device-pine64-pinetab device-pine64-pinephone
(any 2 device- packages will do)
Output:
ERROR: unable to select packages:
linux-postmarketos-allwinner (no such package):
required by: u-boot-pinephone-2021.07-r0[linux-postmarketos-allwinner>=5.12]
.makedepends-device-pine64-pinephone-20210908.075727[linux-postmarketos-allwinner>=5.14]
postmarketos-splash (no such package):
required by: devicepkg-dev-0.13.0-r0[postmarketos-splash]
postmarketos-base (no such package):
required by: .makedepends-device-pine64-pinephone-20210908.075727[postmarketos-base]
>>> ERROR: device-pine64-pinephone: builddeps failed
(1498965) [10:57:28] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you build packages separately, they all build fine.
$ pmbootstrap build --force --strict --arch aarch64 device-pine64-pinetab
$ pmbootstrap build --force --strict --arch aarch64 device-pine64-pinephone
# Good
To understand the issue, you need to read all logs and "connect the dots":
# after succesfully built first package
...
(19/110) Purging postmarketos-base (15-r0)
...
(25/110) Purging postmarketos-keys (1-r0)
...
# building next package...
WARNING: Ignoring http://mirror.postmarketos.org/postmarketos/master: UNTRUSTED signature
(1/1) Installing .pmbootstrap (20210908.075722)
OK: 315 MiB in 43 packages
(1498965) [10:57:23] (native) % apk --no-progress add ccache-cross-symlinks gcc-aarch64 g++-aarch64 crossdirect
WARNING: Ignoring http://mirror.postmarketos.org/postmarketos/master: UNTRUSTED signature
OK: 315 MiB in 43 packages
(1498965) [10:57:23] (native) % apk --no-progress del .pmbootstrap
WARNING: Ignoring http://mirror.postmarketos.org/postmarketos/master: UNTRUSTED signature
(1/1) Purging .pmbootstrap (20210908.075722)
OK: 315 MiB in 42 packages
...
...
...
ERROR: unable to select packages:
linux-postmarketos-allwinner (no such package):
!2477 (merged) is the suspect here.
There is this thing: https://gitlab.com/postmarketOS/pmbootstrap/-/blob/master/pmb/build/init.py#L37 which pmbootstrap does "manually".
And then installs pmos-base, which depends on pmos-keys, which installs the same files (!!!).
And then removes it during purge operation for --strict
option, which also purges the keys (laugh here).
When pmos-keys is purged, all pmOS repo mirrors turn into pumpkins.
device-
packages are good reproducer because they explicitly depend on postmarketos-base.
Edited by Administrator