The gcc-x86_64 is only built for aarch64. Set the depends line to
so:libc.musl-aarch64.so.1 as we had it before 42a50731 ("cross/gcc-*:
upgrade to 14.2.0-r6"). I had set it to so:libc.musl-x86_64.so.1 like
the other cross gccs by accident.
[ci:skip-build]: I'll verify it builds locally before merge.
[ci:skip-vercheck]: version not bumped intentionally.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6501
Bring back manually listed soname depends that were removed in 42a50731
("cross/gcc-*: upgrade to 14.2.0-r6 "). Without these we get various
cross compiler errors (issue 3705).
How these were removed: the cross/gcc-* packages are generated from
"pmbootstrap aportgen", and the code in master currently removes those.
There was a WIP MR that adds the depends again, but it was not finished
(pmbootstrap MR 2521). This needs to be fixed in pmbootstrap and we need
a better process that ensures we can't push broken cross compilers to
master anymore if followed correctly. I'll look into all of that, but
first let's get the cross compilers working again in edge.
[ci:skip-vercheck]: for generated gccs we keep the same pkgrel as in
alpine. I'll force a rebuild in BPO after merge (not
ideal, but fixing this is rather urgent as cross
compilation is otherwise broken in pmOS edge)
[ci:skip-build]: tested locally
Related: issue 3705
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6500
Run aportgen again with pmbootstrap MR 2597 to fix the conflict when
installing cross gcc and native gcc at the same time:
(52/53) Installing gcc-armv7 (14.2.0-r6)
ERROR: gcc-armv7-14.2.0-r6: trying to overwrite usr/lib/libgcc_s.so.1 owned by libgcc-14.2.0-r6.
[ci:skip-vercheck]: for generated gccs we keep the same pkgrel as in
alpine. I'll force a rebuild in BPO after merge (not
ideal, but fixing this is rather urgent as cross
compilation is otherwise broken in pmOS edge)
[ci:skip-build]: tested locally with gcc-armv7
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6497
Prepare to add a systemd-stage0 package that will replace the existing
bootstrap logic. First we need to let systemd provide systemd-stage0 and
wait until the new binary packages are built.
In follow-up patches (MR 6440), a systemd-stage0 package will be
introduced (that does not depend on systemd-enabled dbus or polkit). The
systemd/dbus and systemd/polkit will be changed to use
systemd-stage0-dev and systemd-stage0-libs as makedepends. This makes
the following bootstrap work when building without a binary repository:
1. systemd-stage0
2. dbus
3. polkit
4. systemd
If we already have the binary repository, dbus and polkit will be built
against systemd proper as it provides systemd-stage0 packages with this
patch.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6451
[ci:skip-build]: already built successfully in CI
Remove the _shell subpackage that Alpine has from our forked package, as
pmbootstrap currently can't handle it. It tries to build the dependency
gnome-shell for armhf even through this, even though it has !armhf.
A WIP fix for this is in pmbootstrap MR 2592. But let's try to get the
upstream compat check green again first.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6461
[ci:skip-build]: already built successfully in CI
As many other downstream kernels, this needs to depend on linux-headers
to fix:
In file included from /home/pmos/build/src/android_kernel_alcatel_ttab-1795ea3c237773d32616954a03738d67d209a8d7/scripts/sortextable.c:31:
/home/pmos/build/src/android_kernel_alcatel_ttab-1795ea3c237773d32616954a03738d67d209a8d7/tools/include/tools/be_byteshift.h:4:10: fatal error: linux/types.h: No such file or directory
4 | #include <linux/types.h>
| ^~~~~~~~~~~~~~~
It also needs xz:
/home/pmos/build/src/android_kernel_alcatel_ttab-1795ea3c237773d32616954a03738d67d209a8d7/scripts/xz_wrap.sh: exec: line 23: xz: not found
Related: https://builds.sr.ht/~postmarketos/job/1477748#task-pmbootstrap_build-583
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6446
[ci:skip-build]: already built successfully in CI
The wrong branch was not only used for pytest, but for all CI tests that
used pmbootstrap. I've fixed the bug in pmbootstrap now and added a
generic check to ensure we would catch a similar bug if we had one in
the future.
This reverts commit 7fd9e01f7f.
Related: pmaports issue 3674
Related: pmbootstrap MR 2586
Related: ci-common MR 14
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6439
Let the openrc subpackage depend on eg25-manager-openrc to ensure the
latter gets installed first. Otherwise this can happen:
(122/741) Installing device-pine64-pinephonepro-openrc (4-r3)
Executing device-pine64-pinephonepro-openrc-4-r3.post-install
* rc-update: service `eg25-manager' does not exist
ERROR: device-pine64-pinephonepro-openrc-4-r3.post-install: script exited with error 1
(123/741) Installing eg25-manager-openrc (0.5.2-r0)
Related: https://builds.sr.ht/~postmarketos/job/1472555#task-img-521
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6424
[ci:skip-build]: already built successfully in CI
This reverts commit e2557598d7. The patch
caused installs to fail where the device package explicitly depends on
postmarketos-base-ui-audio-pipewire:
ERROR: unable to select packages:
postmarketos-base-ui-audio-pipewire-35-r0:
conflicts: postmarketos-base-ui-audio-none-35-r0[postmarketos-base-ui-audio=35-r0]
satisfies: device-xiaomi-nabu-5-r0[postmarketos-base-ui-audio-pipewire]
postmarketos-base-ui-35-r0[postmarketos-base-ui-audio]
postmarketos-base-ui-audio-none-35-r0:
conflicts: postmarketos-base-ui-audio-pipewire-35-r0[postmarketos-base-ui-audio=35-r0]
satisfies: world[postmarketos-base-ui-audio-none]
postmarketos-base-ui-35-r0[postmarketos-base-ui-audio]
I've also tried to move the postmarketos-base-ui-audio-pipewire
dependency into a subpackage that doesn't get installed when
postmarketos-ui-console gets installed. But that did *not* work:
audio() {
# This does NOT work!
install_if="$pkgname=$pkgver-r$pkgrel postmarketos-base-ui !postmarketos-ui-console"
mkdir "$subpkgdir"
}
It could work if postmarketos-ui-console did not depend on
postmarketos-base-ui, maybe that should be looked at in a follow-up
patch. Or just install the audio stack and require the user to do
UI=none if they want a really minimal system. Let's revert the patch now
to fix failing installs in bpo, e.g. master:xiaomi-nabu:console.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6408
* apk-tools passes the directories it triggers on as arguments to the
trigger script. Use them to only run the relevant parts of the
triggers.
* Remove "|| :" from commands, as we run the script without "set -e", it
won't fail if a single command fails. Put explicit "exit 0" at the end
to ensure this even if the last command beforehand failed.
* Print messages for each action so we know what is happening.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6346
[ci:skip-build]: already built successfully in CI
It's important to use a versioned constraint so that if the
package is ever removed from the binary repository it will actually be
removed from the users system too.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6347
[ci:skip-build]: already built successfully in CI
The recent optimization of not running "mkinitfs" during the trigger
script when running in pmbootstrap lead to unexpected behavior for some
use cases: testing initramfs changes and upgrading the initramfs in the
chroot (e.g. with pmbootstrap chroot --image). Let the user know that it
gets skipped and tell them how they can force building a new initramfs,
as discussed with Caleb.
[ci:skip-build]: already built successfully in CI
Set CGO_ENABLED=1 to fix the following when cross compiling with
cross-native2 from x86_64 to (armv7,riscv64,armhf):
-buildmode=pie requires external (cgo) linking, but cgo is not enabled
Depends: pmbootstrap MR 2565
Related: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15809
Don't run mkinitfs inside "pmbootstrap install" with the trigger
script, as it triggers multiple times as the rootfs gets constructed,
slowing down the process. Instead, pmbootstrap runs "mkinitfs"
explicitly once at the end of "pmbootstrap install".
pmaports master has pmbootstrap_min_version=2.3.2 in pmaports.cfg, which
already runs "mkinitfs" at the end of "pmbootstrap install", see
pmb/install/_install.py, install_system_image().
pmbootstrap > 3.3.1 is stricter with the dependencies, it will only
install packages that are in makedepends during builds. Before it also
installed packages from depends.
Add postmarketos-mvcfg to makedepends, as it gets used in build().
postmarketos-mvcfg will be removed in the future (see issue 3580), but
let's unbreak the build first.
Related: pmbootstrap issue 2574
[ci:skip-build]: already built successfully in CI
Fix that building phosh, gnome, plasma-mobile images fails with:
==> Generating vmlinuz.kpart
Building depthcharge image for board 'Unnamed veyron board' ('veyron').
Couldn't build a small enough image for this board.
Related: https://builds.sr.ht/~postmarketos/job/1422513#task-img-1544
Related: bpo issue 153
[ci:skip-build]: already built successfully in CI
Our libcamera fork needs a rebuild, as pointed out by the
upstream-compat monitoring job:
Increase 'libcamera' pkgrel (9 -> 10), missing depend(s): so:libgtest.so.1.15.2
[ci:skip-build]: already built successfully in CI
Add a funding-manifest-urls file, as required by the floss.fund funding
manifest:
> If the manifest references URLs, such as a project's webpage, that are not
> on the same domain as the funding.json manifest itself, then the wellKnown
> URL must point to a /.well-known/funding-manifest-urls file. This file should
> contain URL (one or more) of the funding.json manifest URLs that reference
> it. This establishes provenance and verifies that that the publisher of the
> manifest is authorised to solicit funding on behalf of the URLs (entity,
> projects) described in the manifest. This follows the .well-known convention.
Related: https://floss.fund/funding-manifest/
Related: postmarketos.org MR 345
CONFIG_LEDS_GROUP_MULTICOLOR just had to be re-enabled to fix a
regression. Add this to kconfigcheck to prevent disabling it by
accident in the future. Adjust the description of the Librem 5
specific section while at it.
[ci:skip-build] [ci:skip-vercheck]: no need to rebuild
Explicitly generate qwayland-plasma-shell.h first, in order to fix:
In file included from /usr/include/PlasmaQuick/PlasmaQuick/PlasmaShellWaylandIntegration:1,
from /home/pmos/build/src/plasma-workspace-6.1.2/shell/panelconfigview.cpp:35:
/usr/include/PlasmaQuick/plasmaquick/plasmashellwaylandintegration.h:14:10: fatal error: qwayland-plasma-shell.h: No such file or directory
14 | #include "qwayland-plasma-shell.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Related: https://invent.kde.org/plasma/plasma-workspace/-/issues/132
[ci:skip-vercheck]
[ci:skip-build] times out after >3hr in gitlab CI
Fix for:
In systemd-services.trigger line 14:
systemctl $cmd $service
^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
Should be =$pkgver-r$pkgrel instead of =$_pkgver-r$pkgrel. Otherwise CI
fails, and it is right, we do want to provide the very high version so
we don't install the regular package by accident if the regular package
gets upgraded before this forked version.
Let's put everything systemd related in an extra-repos directory, so it
is clear that the packages from here will end up in a separate, optional
binary package repository.
Add the dependency, so the systemd-services package gets built as part
of the bootstrap. Otherwise no service files will be installed, as the
individual service files get pulled in via install_if, and that only
works if a binary package is available.
Current pinephone images built pmbootstrap >= 3.0.0 don't boot on the
pinephone anymore. At least part of this must be the switch from GPT to
MBR that has been done by default in pmbootstrap. Set msdos explicitly
to revert this for the pinephone.
With Tow-Boot we could probably use GPT instead, but this should be a
well-tested, concious decision. Let's fix this regression first.
[ci:skip-build]: already built successfully in CI
Fix the bug that prevented "pmbootstrap install" from working with
postmarketos-ui-gnome (not -mobile).
This bug has been here in pmaports for a long time, but until recent
changes in apk's resolver code, this did not fail (apk installed
gnome-extensions-app instead of gnome-mobile-extensions-app in that
scenario).
How it happened:
* postmarketos-ui-gnome has _pmb_recommends="gnome-extensions-app".
* pmbootstrap: pmb.install._install.get_recommends() works like this:
1. Look at the packages i in _pmb_recommends of the packages that
will be installed in "pmbootstrap install".
2. For each package j in _pmb_recommends of i:
2.1 Add all packages in j's _pmb_recommends to the list of
packages to be installed.
(2.2 Recurse by doing 1. with each package in j's _pmb_recommends.)
* In step 2:
* pmaports doesn't have a gnome-extensions-app (it's in Alpine, a
subpackage of gnome-shell).
* Therefore our gnome-shell-mobile fork gets looked at, which has a
gnome-mobile-extensions-app subpackage that provides
gnome-extensions-app.
* pmbootstrap looks at the _pmb_recommends of the gnome-shell-mobile
package, which has "gnome-mobile-extensions-app" (this is wrong,
it should be in postmarektos-ui-gnome-mobile instead and this patch
fixes this!).
* pmbootstrap adds the "gnome-mobile-extensions-app" to the list of
packages to be installed.
* The result is an "apk add" line that has "postmarketos-ui-gnome" and
"gnome-mobile-extensions-app" (and more packages), which results in a
conflict betwen gnome and gnome-mobile packages.
Fixes: issue 3360
[ci:skip-vercheck]: _pmb_recommends changes don't need package rebuilds
[ci:skip-build]: already built successfully in CI
Ensure postmarketos-base-nofde is built before this package, otherwise
bootstrapping this on a new stable branch fails. This does not need to
be backported, as postmarketos-base-nofde has already been built for
v24.12.
Related: https://builds.sr.ht/~postmarketos/job/1384748
Move the polkit-elogind into depends= instead of pmb_recommends=, so
packages depending on postmarketos-base-ui-gnome can build successfully
again. The previous fix only helped for "pmbootstrap install", this fix
will help for both cases.
Without this, e.g. postmarketos-base-ui-gnome-mobile fails to build:
https://builds.sr.ht/~postmarketos/job/1384469
[ci:skip-build]: already built successfully in CI
Add polkit-elogind to _pmb_recommends, to help apk resolve the polkit
depends again. Otherwise it fails with a conflict since recent changes
in apk's dependency resolving code.
Fixes: issue 3349
[ci:skip-vercheck]: pmb_recommends change doesn't need rebuild
[ci:skip-build]: already built successfully in CI
Change <=…-r0 to <=…-r999 as it was just bumped to fix a build error and
might be bumped again in the future. I've also tried just removing -r0,
but that results in a conflict.
Split -nofde into a separate package to resolve the cyclic depenency:
postmarketos-base -> postmarketos-initramfs -> postmarketos-base-nofde
Fixes: issue 3236
[ci:skip-build]: already built successfully in CI
Fill out makedepends, so pmbootstrap and bpo know that these packages
need to be built before building postmarketos-cros-common, because it
has subpackages depending on these packages. Without this,
bootstrapping v24.12 currently fails:
https://builds.sr.ht/~postmarketos/job/1381582
This is intended behavior, abuild works the same way:
https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10138
[ci:skip-build]: already built successfully in CI