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>
The runners from OSUOSL sometimes still fail to run jobs that emulate
other arches via QEMU. We run into this when building gcc-x86_64 for
aarch64 on x86_64 through QEMU. Use the usual workaround of running the
job on our own builder.
Related: postmarketos issue 83
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6909>
Make the log available, currently it gets cut off:
> Job's log exceeded limit of 4194304 bytes.
> Job execution will continue but no more output will be collected.
Remove --details-to-stdout, as it causes the log to only get written to
stdout, not to the log file.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6909>
The hello-world, iskey, pbsplash packages didn't actually get built in
this test as --force was missing and the versions don't change when
upgrading gcc. The last and most important one for building gcc-x86_64
with gcc-aarch64 did work though.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6909>
Fix that CI is currently failing with errors like:
> FAILED .ci/testcases/test_device.py::test_aports_archived -
> AssertionError:
> /builds/postmarketOS/pmaports/device/archived/firmware-samsung-nevisp/APKBUILD
> should have an Archived: comment that describes why the package is
> archived
Push this directly to master as this is a trivial but important fix to
make CI pass again for open MRs.
This reverts commit 3136413814. I made a
mistake there, the pkgrel of the current binary packages is at -r2.
root@bpo:…/extra-repos/systemd/master/x86_64# ls gdm-* -1
gdm-99948.0-r2.apk
gdm-dev-99948.0-r2.apk
gdm-doc-99948.0-r2.apk
gdm-lang-99948.0-r2.apk
gdm-systemd-99948.0-r2.apk
[ci:skip-build]
[ci:skip-vercheck]
Add the missing makedepend to systemd-dev. For some reason this has
mostly worked previously, I guess because systemd-udev got pulled in to
replace eudev, which then also caused systemd-dev to get installed. This
even was the case on my local system when I initally tried to reproduce
this. Only after using BPO's current WIP repos I was able to reproduce
the behavior on BPO, and verify that this fixes the bug.
Fixes: https://builds.sr.ht/~postmarketos/job/1540044
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6835
[ci:skip-build]: already built successfully in CI
* Include 0.21.0 in the pkgver instead of _git20240428, as we use the
0.21.0 git tarball as source just like the Alpine package.
* Set _pkgrel=5 to indicate what Alpine pkgrel this fork is based on.
This makes it easier to compare the packages / patches that we might
need to apply downstream. Furthermore with _pkgrel set and pmb MR 2649
merged, we will get notified when the pkgrel of the Alpine package and
_pkgrel of this package get out-of-sync.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6769
[ci:skip-build]: already built successfully in CI
When upgrading our cross gcc packages, build some packages with them to
ensure they work as expected.
Put the gitlab-ci.yml in cross/ instead of cross/gcc-x86_64, because:
* it tests gcc-aarch64 too
* so it does not get removed when regenerating gcc-x86_64 with
pmbootstrap
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6776
Run native binaries for extracting / packing various archives if they
are installed in the native chroot when using the crossdirect
compilation method, instead of having them go through QEMU. The
resulting extracted/packed files should always be the same but this is
significantly faster.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6763
Fix the following error that now appears as the systemd-enabled
gnome-keyring package in pmaports will not be built for armhf:
main/postmarketos-ui-xfce4/APKBUILD: package 'gnome-keyring' from _pmb_recommends not found for arch 'armhf'
This happened, because before this patch pmb.helpers.package.get() would
return the pmaports version of the package (!armhf) instead of the one
in the binary packages from alpine (alpine one is available for armhf),
and then later check the arches of the returned package and fail because
it is not enabled for armhf.
With the patch, the binary package from alpine repos is returned as the
pmaports one is ruled out due to not being available for armhf. The
latter arch check is not necessary anymore and gets removed.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6710
Remove the systemd-specific MOTD that says it is still in preview.
v25.06 is about to come out, the first stable release with systemd!
Any future adjustments to make it use fancy ascii colors etc. should be
made in postmarketos-base instead.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6669
[ci:skip-build]: already built successfully in CI