We will need to apply this to more kernels that we see failing with:
BTF .tmp_vmlinux1
Killed
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make[2]: *** [scripts/Makefile.vmlinux:72: vmlinux.unstripped] Error 1
make[1]: *** [/home/pmos/build/src/linux-7.0.8-sm6350/Makefile:1302: vmlinux] Error 2
make: *** [Makefile:248: __sub-make] Error 2
[ci:skip-vercheck]
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8935>
* Describe relevant changes, especially that we may make non-backport
changes if there is a patch release for a package that meanwhile has a
higher version in main already (e.g. a kernel in main is on linux
7.x.y while stable is on 6.18.z).
* Directly pushing to a stable branch should only be done during initial
branch bringup, otherwise we shall always make MRs that go through CI.
* Update formatting and title of the page.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8812>
* Note that several steps can already be done even if the community repo
is not published yet in Alpine.
* Adjusting arches in .ci/build-jobs.yaml.j2 is not needed anymore, CI
scripts read them from pmaports.cfg now.
* Branch protection: we have a v2*.* rule in place now that protects new
release branches automatically, adjust wording to just double check if
it still matches and add a link (in 2030 it will not match anymore.)
* channels.cfg: cover case that the aports branch may not exist yet in
pre-branch phase.
* Use git commit -s in example commands.
* postmarketos-ui-asteroid currently doesn't exist anymore, so we don't
need to delete it for stable.
* Add the command for regenerating cross packages.
* Remove postmarketos-repo-nightly in stable.
* Bootstrap of binary packages: tweak wording, mention that only the
main repo needs to be built for x86_64 before arm repos can be
enabled, we don't need to wait for the x86_64 systemd repo.
* Adjust to QEMU devices not being in main anymore.
* Various syntax fixes and readability improvements.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8815>
apkbuild-lint only checks the file from the first parameter:
$ apkbuild-lint main/postmarketos-ui-phosh/APKBUILD
IC[AL65]:main/postmarketos-ui-phosh/APKBUILD:66:2:non-local 'install' variable in function 'openrc'. Add install scripts to global install variable instead.
MC[AL49]:main/postmarketos-ui-phosh/APKBUILD:46:1:invalid option 'pmb:drm'
MC[AL49]:main/postmarketos-ui-phosh/APKBUILD:46:1:invalid option 'pmb:systemd'
$ apkbuild-lint main/hello-world/APKBUILD main/postmarketos-ui-phosh/APKBUILD
(empty output!)
Loop over the APKBUILDs we want to lint so all of them get checked.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
I was wondering why apkbuild-lint found a bug locally but not in CI:
IC[AL65]:main/postmarketos-ui-phosh/APKBUILD:66:2:non-local 'install' variable in function 'openrc'. Add install scripts to global install variable instead.
The reason is that the we use alpine:latest here. Let's change it to
alpine:edge so we have the most recent abuild-go version that finds the
most APKBUILD linting bugs.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
When building dbus against systemd-stage0, we need to have libucontext
installed. Since systemd-stage0 uses !tracedeps, it needs to be
specified manually in depends. I've reproduced the build error locally
and verified that this fixes it.
Fix for:
[195/243] Linking target test/manual-test-thread-blocking
ninja: job failed: cc -o test/test-sd-activation test/test-sd-activation.p/sd-activation.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security '-Wl,-rpath,$ORIGIN/../dbus' -Wl,--start-group test/libdbus-testutils.a dbus/libdbus-1.so.3.38.3 dbus/libdbus-internal.a /usr/lib/libglib-2.0.so /usr/lib/libintl.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so -pthread /usr/lib/libsystemd.so -Wl,--end-group
/usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: warning: libucontext.so.1, needed by /usr/lib/libsystemd.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /usr/lib/libsystemd.so: undefined reference to `swapcontext'
/usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /usr/lib/libsystemd.so: undefined reference to `getcontext'
/usr/lib/gcc/aarch64-alpine-linux-musl/15.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /usr/lib/libsystemd.so: undefined reference to `makecontext'
collect2: error: ld returned 1 exit status
Related: https://builds.sr.ht/~postmarketos/job/1776990
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8704>
Building this package is currently failing with:
scripts/Kconfig.include:41: linker 'aarch64-alpine-linux-musl-ld' not found
This kernel was switched over to LLVM and it built fine then, but due to
other changes (pmbootstrap maybe?) it doesn't build anymore. This is
currently blocking v26.06 bringup, so let's temporarily switch back to
GCC until we can resolve it better in edge, probably by getting !8578 in
which is currently blocked as there seem to be regressions.
This reverts the APKBUILD changes from
9b27b4a0f7.
[ci:skip-kconfigcheck]: minimal changes to make this build again
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8693>
Split postmarketos-base-nofde out from postmarketos-base to fix this
bootstrap problem:
postmarketos-initramfs:
provides: postmarketos-ramdisk
depends: postmarketos-fde-unlocker
postmarketos-base:
depends: postmarketos-ramdisk
provides: postmarketos-fde-unlocker (via postmarketos-base-nofde subpackage)
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8657>
We don't need to have makedepends="postmarketos-initramfs" for building
postmarketos-base. I'm not sure why this was added in
6c799ac4f6.
Removing it fixes this dependency loop we currently see in BPO while
bootstrapping v26.06:
* postmarketos-initramfs-3.11.0-r0 (missing depends: postmarketos-base)
* postmarketos-base-61-r1 (missing depends: postmarketos-initramfs)
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8643>
Fix that the build-jobs were using Alpine edge. This seems
unintentional, or at least inconsistent. Before this patch we had:
$ git grep alpine:latest
.ci/build-jobs.yaml.j2:image: registry.alpinelinux.org/img/alpine:latest
.gitlab-ci.yml:image: alpine:latest
It turns out that "registry.alpinelinux.org/img/alpine:latest" is
actually alpine edge:
$ docker run --rm registry.alpinelinux.org/img/alpine:latest cat /etc/os-release
Unable to find image 'registry.alpinelinux.org/img/alpine:latest' locally
latest: Pulling from img/alpine
d4a983187cfd: Pull complete
Digest: sha256:47b4a945203d4bad4e0c7840d64044da50a719d0cd0512a50e3ab473240635ea
Status: Downloaded newer image for registry.alpinelinux.org/img/alpine:latest
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.21.0_alpha20240923
PRETTY_NAME="Alpine Linux edge"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
And alpine:latest is stable (when fetched from docker hub, with podman
it could be configured to point at alpine's registry as well, which
means it is edge... but the OSUOSL CI runners use docker):
$ docker run --rm alpine:latest cat /etc/os-release
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
589002ba0eae: Already exists
Digest: sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659
Status: Downloaded newer image for alpine:latest
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.23.3
PRETTY_NAME="Alpine Linux v3.23"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
Using stable makes more sense here, so temporary bugs in edge don't
break our CI. It is currently somewhat broken because running
pmbootstrap with python 3.14 and musl results in crashes with "No file
descriptors available" errors in some situations.
Related: https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/work_items/141
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8340>
Fix that building this package fails with:
ccache: error: Could not find compiler "aarch64-alpine-linux-musl-gcc" in PATH
dtc tries to call gcc, so we must add it to the makedepends. It doesn't
seem possible to use clang instead with dtc, and even if, let's get the
package building with GCC first to unblock the queue in BPO and then
look into doing that.
This has probably worked in the past because pmbootstrap used to
pre-install more dependencies in the past during builds and this package
hasn't been built in a long time.
[ci:skip-vercheck]: code wasn't changed, just fixing the build
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8241>
Put phosh-tour in pmb_recommends instead of having postmarketos-welcome
indirectly installed by default through
postmarketos-base-ui-gnome-mobile. In order to do that, move
postmarketos-welcome from the pmb_recommends of
postmarketos-base-ui-gnome-mobile to postmarketos-ui-gnome-mobile.
The reasons for that is that the postmarketos-welcome app by now has
in part incomplete and outdated explanations about how phosh shall be
used. For example, a common question that we don't answer but phosh-tour
does is how the keyboard can be launched from any app.
The postmarketos-welcome app warns more about that this is an
experimental system, but that is prominently displayed on our homepage
when trying to download images. Otherwise it also doesn't contain much
information that makes it worth keeping instead of phosh-tour.
Finally phosh upstrem has also said that they would be willing to have
distro-specific tour pages, so if we notice that something would be
really good to have there in the long run, we could look into getting it
in phosh-tour.
[ci:skip-vercheck]: changing pmb_recommends doesn't need rebuilds
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8145>
This was the only package starting with "device-generic-" that did not
end in an architecture name, which means it is not generic for that
architecture. Rename this package, so we can define all packages
starting with "device-generic-" as Generic Device Packages and document
guidelines for making these types of packages consistent.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8122>
Calls are broken for the Librem 5 with pipewire. Switch to pulseaudio
again until this is resolved by depending on
postmarketosbase-ui-audio-pulseaudio and pulseaudio<9990. The later is
needed as otherwise we get a conflict with pipewire-pulse:
ERROR: unable to select packages:
pipewire-pulse-9991.4.9-r1:
breaks: postmarketos-base-ui-audio-pulseaudio-42-r0[!pipewire-pulse]
satisfies: device-purism-librem5-9-r6[pulseaudio>17]
gnome-settings-daemon-99948.1-r3[pulseaudio]
postmarketos-base-ui-audio-pulseaudio-42-r0[pulseaudio]
That pulseaudio<9990 is needed is not great, but doing it like this
inside the device package is the best way to ensure this doesn't affect
any other devices for now, with the intention to have this change
backported to v25.12 before we announce the release. I've created issue
4187 to discuss how to improve the pulseaudio/pipewire packaging in
general so this isn't necessary in the future.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7619>
Let postmarketos-base-nofde provide a specific version of
postmarketos-fde-unlocker, so pmbootstrap considers the package for
installation. From pmb/helpers/pmaports.py:_find_package_in_apkbuild():
# Ignore provides without version, they shall never be
# automatically selected
if "=" not in provides_i:
continue
Fix for bootstrapping new repositories, which currently fails with:
ERROR: postmarketos-initramfs: dependency not found: postmarketos-fde-unlocker
...when trying to build postmarketos-cros-common or
device-valve-jupiter.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7455>
The busybox-static packages were used by devices using the obscure
"isorec" boot method (that I originally introduced with the
samsung-i9100, based on what I saw in the downstream kernel repo at the
time IIRC). This method is fairly limited, e.g. we can't append a
cmdline easily according to MR 6917. After the samsung-i9100 has been
switched over to use u-boot in MR 6921, all users of busybox-static are
now in device/archived/. Let's remove the busybox-static packages so
there are less packages we need to sync with Alpine.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7145>
Crossdirect redirects archivers (gz, bzip2, ...) to their native
versions when cross compiling. This works e.g. when extracting sources or
packing the .apks at the end of the build. But it currently fails when
such an archiver gets called during package().
For example with bootchart2:
>>> bootchart2: Entering fakeroot...
...
gzip -c bootchart2.1 > /home/pmos/build/pkg/bootchart2/usr/share/man/man1/bootchart2.1.gz
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 6
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 6
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 1
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 6
Fix this by running the foreign arch version when it gets called in a
fakeroot.
Fixes: 8a7c9ce7 ("cross/crossdirect: run archivers natively too")
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7120>
This package was supposed to be a provider for postmarketos-fde-unlocker
(see description "Dummy unlocker package for systems without FDE") and
provider_priority=1 (whereas unl0kr has 1000)).
Fix this, so it is in theory possible to install pmOS without unl0kr
again if you want to save a little space and don't need FDE. More
importantly this also fixes bootstrapping a new reposiotry, as we can
now let postmarketos-initramfs makedepend on this package to ensure that
there is one provider for postmarketos-fde-unlocker.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7118>