2026-08-08 22:19:31 +02:00
|
|
|
# fp6-img fork of Alpine community/libqmi: snapshot bumped to upstream main
|
|
|
|
|
# just past the !470 merge (LOC Register Events client-identification TLVs,
|
|
|
|
|
# half of working GNSS on the FP6) - which also provides the qmi-glib 1.39.1
|
|
|
|
|
# our modemmanager patches require. Drop when Alpine's snapshot catches up.
|
2026-08-08 21:27:48 +02:00
|
|
|
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
|
|
|
|
|
maintainer="Achill Gilgenast <achill@achill.org>"
|
|
|
|
|
pkgname=libqmi
|
2026-08-08 22:19:31 +02:00
|
|
|
pkgver=1.39.1_git20260808
|
|
|
|
|
_commit=30f3e998e6cbda364ac1bc73223de20561e6d555
|
kernel: build for the cores the phone has, pkgrel 102
The FP6 is 4x Cortex-A520 + 4x Cortex-A720 and this image boots nothing
else, so pass the compiler KCFLAGS="-march=armv8.6-a+fp16fml+aes+sha3+sm4
-mtune=cortex-a720". The stock arm64 build gives the compiler no arch flag
at all (so one image can boot any Armv8 board).
The string is what `gcc -march=native` derives on the phone, re-based on
armv8.6-a so clang can express the same set (clang has no flagm2/rcpc2/
frintts tokens; it reaches them through the architecture level). 8.6 is the
highest level whose mandatory set the phone exposes: 8.7 would assume WFxT
and 9.x SVE2, and neither is in its hwcaps or ID registers. clang emits
identical code for this and for -mcpu=cortex-a720+nosve+nomemtag; the
difference is only which system features (SPE, ETE, TRBE, FPAC) it knows
about, none of which generate code.
Verified on eef717f978f1 with the aport config: builds with zero warnings,
same module set as r100 (417), compat vDSO untouched, boots the dev phone
with a clean dmesg and a GREEN selftest. Record:
fp6 journal/base/captures/2026-09-05-mcpu-a720-verification.md.
2026-09-06 00:02:19 +02:00
|
|
|
pkgrel=101
|
2026-08-08 21:27:48 +02:00
|
|
|
pkgdesc="QMI modem protocol helper library"
|
|
|
|
|
url="https://www.freedesktop.org/wiki/Software/libqmi"
|
|
|
|
|
arch="all"
|
|
|
|
|
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
|
|
|
|
|
makedepends="
|
|
|
|
|
bash-completion-dev
|
|
|
|
|
glib-dev
|
|
|
|
|
gobject-introspection-dev
|
|
|
|
|
help2man
|
|
|
|
|
libgudev-dev
|
|
|
|
|
libmbim-dev
|
|
|
|
|
libqrtr-glib-dev
|
|
|
|
|
linux-headers
|
|
|
|
|
meson
|
|
|
|
|
python3
|
|
|
|
|
"
|
2026-08-08 22:53:17 +02:00
|
|
|
# fp6-img: crossdirect breaks meson compiler introspection (cc1 spawn
|
|
|
|
|
# failure), same as modemmanager; build under plain qemu.
|
|
|
|
|
options="!pmb:crossdirect"
|
kernel: build for the cores the phone has, pkgrel 102
The FP6 is 4x Cortex-A520 + 4x Cortex-A720 and this image boots nothing
else, so pass the compiler KCFLAGS="-march=armv8.6-a+fp16fml+aes+sha3+sm4
-mtune=cortex-a720". The stock arm64 build gives the compiler no arch flag
at all (so one image can boot any Armv8 board).
The string is what `gcc -march=native` derives on the phone, re-based on
armv8.6-a so clang can express the same set (clang has no flagm2/rcpc2/
frintts tokens; it reaches them through the architecture level). 8.6 is the
highest level whose mandatory set the phone exposes: 8.7 would assume WFxT
and 9.x SVE2, and neither is in its hwcaps or ID registers. clang emits
identical code for this and for -mcpu=cortex-a720+nosve+nomemtag; the
difference is only which system features (SPE, ETE, TRBE, FPAC) it knows
about, none of which generate code.
Verified on eef717f978f1 with the aport config: builds with zero warnings,
same module set as r100 (417), compat vDSO untouched, boots the dev phone
with a clean dmesg and a GREEN selftest. Record:
fp6 journal/base/captures/2026-09-05-mcpu-a720-verification.md.
2026-09-06 00:02:19 +02:00
|
|
|
# fp6-img: this package only ever runs on the FP6 (4x Cortex-A520 + 4x
|
2026-09-06 00:02:19 +02:00
|
|
|
# Cortex-A720), so build for it. armv8.6-a is the highest level whose
|
|
|
|
|
# mandatory set the phone exposes (8.7 would assume WFxT, 9.x SVE2; neither
|
|
|
|
|
# is in its hwcaps); +fp16fml+aes+sha3+sm4 are the optional extensions it
|
|
|
|
|
# has, the same set `gcc -march=native` derives on the phone. One spelling
|
|
|
|
|
# for gcc and clang, and the same string the kernel aport uses.
|
|
|
|
|
export CFLAGS="$CFLAGS -march=armv8.6-a+fp16fml+aes+sha3+sm4 -mtune=cortex-a720"
|
2026-08-08 21:27:48 +02:00
|
|
|
subpackages="
|
|
|
|
|
$pkgname-dev
|
|
|
|
|
$pkgname-doc
|
|
|
|
|
$pkgname-bash-completion
|
|
|
|
|
qmi-utils
|
|
|
|
|
"
|
|
|
|
|
#source="https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/archive/$pkgver/libqmi-$pkgver.tar.gz"
|
2026-08-17 10:36:05 +02:00
|
|
|
# fp6-img: local tarball, generated by build.sh from a git clone — fd.o's
|
|
|
|
|
# archive endpoint 504s for hours at a stretch (killed CI runs 27/30/31)
|
|
|
|
|
source="libqmi-$_commit.tar.gz
|
2026-08-08 21:27:48 +02:00
|
|
|
"
|
|
|
|
|
builddir="$srcdir/$pkgname-$_commit"
|
|
|
|
|
|
|
|
|
|
build() {
|
|
|
|
|
abuild-meson \
|
|
|
|
|
-Db_lto=true \
|
|
|
|
|
. output
|
|
|
|
|
meson compile -C output
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
check() {
|
|
|
|
|
local tests=$(meson test --list -C output)
|
|
|
|
|
case "$CARCH" in
|
|
|
|
|
s390x) tests=${tests//test-message} ;;
|
|
|
|
|
esac
|
|
|
|
|
meson test --print-errorlogs -C output $tests
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
package() {
|
|
|
|
|
DESTDIR="$pkgdir" meson install --no-rebuild -C output
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
utils() {
|
|
|
|
|
pkgdesc="$pkgdesc (CLI utilities)"
|
|
|
|
|
|
|
|
|
|
amove usr/bin
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sha512sums="
|
|
|
|
|
fc178689675b47faaa46c14b126dc054354044238ea00464b4cc4910c5f2c73faaa12d80a5219fbfad65ab575e38f7af3fd79ae7974ea80ed67bfffe027b85c3 libqmi-cff17a676e10d75081516dafa997fe9bc9043c38.tar.gz
|
|
|
|
|
"
|