modemmanager 1.25.95_git20261005-r101: follow Alpine's snapshot

Alpine's community/modemmanager moved to upstream commit 7f0bf17a
(2026-10-05, 63 commits past our d776ea38) and now carries the XMM7360
big-endian patch itself. Its 1.25.95_git20261005-r0 sorts above our
1.25.95_git20260709-r101, so the next 'apk upgrade' on a phone would have
replaced this fork with Alpine's build and dropped the two GNSS patches
(MR !1463, still not merged).

Move the pin to Alpine's commit; the two GNSS patches re-exported on it
(the same lines, only the hunk offsets moved, the result equal to the
merge request's current head); keep the XMM7360 patch, which Alpine's
aport has byte-for-byte. The makedepends no longer pin libqmi-dev to
>=1.39.1: the GNSS patch raises meson's own qmi-glib requirement to 1.39.1
and every libqmi snapshot in reach reports that, while apk's view of
Alpine's 1.38.0_git* version would fail the pin.
This commit is contained in:
Jorijn van der Graaf 2026-10-12 00:40:13 +02:00
commit 71ee495d6f
Signed by: jorijnvdgraaf
GPG key ID: 2937E59CDCC1BCFB
3 changed files with 24 additions and 22 deletions

View file

@ -1,7 +1,7 @@
From 2924dab906b3dc9e3b48e766637618ce53615c23 Mon Sep 17 00:00:00 2001 From d9e93ad09b75ec2813a01bbb07794a5c85a3a56d Mon Sep 17 00:00:00 2001
From: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net> From: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
Date: Thu, 2 Jul 2026 15:30:48 +0200 Date: Thu, 2 Jul 2026 15:30:48 +0200
Subject: [PATCH 2/3] shared-qmi: unlock AFW-gated GNSS engines at LOC start Subject: [PATCH] shared-qmi: unlock AFW-gated GNSS engines at LOC start
Newer Snapdragon GNSS engines (e.g. gnss8 in the SM7635/Fairphone 6) Newer Snapdragon GNSS engines (e.g. gnss8 in the SM7635/Fairphone 6)
only allow positioning for clients registered as application framework only allow positioning for clients registered as application framework
@ -44,10 +44,10 @@ Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
2 files changed, 86 insertions(+), 55 deletions(-) 2 files changed, 86 insertions(+), 55 deletions(-)
diff --git a/meson.build b/meson.build diff --git a/meson.build b/meson.build
index 3cf29e80..e5e3d0be 100644 index 9b8ab2d1..1bb10b94 100644
--- a/meson.build --- a/meson.build
+++ b/meson.build +++ b/meson.build
@@ -277,7 +277,7 @@ config_h.set('WITH_MBIM', enable_mbim) @@ -297,7 +297,7 @@ config_h.set('WITH_MBIM', enable_mbim)
# QMI support (enabled by default) # QMI support (enabled by default)
enable_qmi = get_option('qmi') enable_qmi = get_option('qmi')
if enable_qmi if enable_qmi
@ -57,10 +57,10 @@ index 3cf29e80..e5e3d0be 100644
if not qmi_glib_dep.found() and get_option('subproject-fallback') if not qmi_glib_dep.found() and get_option('subproject-fallback')
diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c
index d93698a6..09aa987a 100644 index f578d876..25990ceb 100644
--- a/src/mm-shared-qmi.c --- a/src/mm-shared-qmi.c
+++ b/src/mm-shared-qmi.c +++ b/src/mm-shared-qmi.c
@@ -5646,33 +5646,67 @@ pds_gps_service_state_start_ready (QmiClientPds *client, @@ -5652,33 +5652,67 @@ pds_gps_service_state_start_ready (QmiClientPds *client,
qmi_message_pds_set_auto_tracking_state_input_unref (input); qmi_message_pds_set_auto_tracking_state_input_unref (input);
} }
@ -142,7 +142,7 @@ index d93698a6..09aa987a 100644
self = g_task_get_source_object (task); self = g_task_get_source_object (task);
priv = get_private (self); priv = get_private (self);
@@ -5691,16 +5725,16 @@ loc_register_events_ready (QmiClientLoc *client, @@ -5697,16 +5731,16 @@ loc_register_events_ready (QmiClientLoc *client,
} }
static void static void
@ -167,7 +167,7 @@ index d93698a6..09aa987a 100644
if (!output) { if (!output) {
g_prefix_error (&error, "QMI operation failed: "); g_prefix_error (&error, "QMI operation failed: ");
g_task_return_error (task, error); g_task_return_error (task, error);
@@ -5708,32 +5742,40 @@ loc_start_ready (QmiClientLoc *client, @@ -5714,32 +5748,40 @@ loc_start_ready (QmiClientLoc *client,
return; return;
} }
@ -226,7 +226,7 @@ index d93698a6..09aa987a 100644
static void static void
start_gps_engine (MMSharedQmi *self, start_gps_engine (MMSharedQmi *self,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
@@ -5771,20 +5813,9 @@ start_gps_engine (MMSharedQmi *self, @@ -5777,20 +5819,9 @@ start_gps_engine (MMSharedQmi *self,
MM_PORT_QMI_FLAG_DEFAULT, MM_PORT_QMI_FLAG_DEFAULT,
NULL); NULL);
if (client) { if (client) {

View file

@ -1,8 +1,7 @@
From 7566587e77d299ab0f67613ae03cab9973e351db Mon Sep 17 00:00:00 2001 From 59f2f17246a844e07569e2ee6523c810364e1e52 Mon Sep 17 00:00:00 2001
From: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net> From: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
Date: Thu, 2 Jul 2026 15:44:16 +0200 Date: Thu, 2 Jul 2026 15:44:16 +0200
Subject: [PATCH 3/3] shared-qmi: derive location from Position Report Subject: [PATCH] shared-qmi: derive location from Position Report indications
indications
Some GNSS engines (e.g. gnss8 in the SM7635/Fairphone 6) report fixes Some GNSS engines (e.g. gnss8 in the SM7635/Fairphone 6) report fixes
only via QMI_LOC Position Report indications and never emit NMEA (Set only via QMI_LOC Position Report indications and never emit NMEA (Set
@ -43,7 +42,7 @@ Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
1 file changed, 147 insertions(+) 1 file changed, 147 insertions(+)
diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c
index 09aa987a..cad75080 100644 index 25990ceb..d2eefb26 100644
--- a/src/mm-shared-qmi.c --- a/src/mm-shared-qmi.c
+++ b/src/mm-shared-qmi.c +++ b/src/mm-shared-qmi.c
@@ -88,6 +88,8 @@ typedef struct { @@ -88,6 +88,8 @@ typedef struct {
@ -64,7 +63,7 @@ index 09aa987a..cad75080 100644
if (priv->loc_assistance_inject_time_req_indication_id) if (priv->loc_assistance_inject_time_req_indication_id)
g_signal_handler_disconnect (priv->loc_client, priv->loc_assistance_inject_time_req_indication_id); g_signal_handler_disconnect (priv->loc_client, priv->loc_assistance_inject_time_req_indication_id);
if (priv->loc_assistance_inject_position_req_indication_id) if (priv->loc_assistance_inject_position_req_indication_id)
@@ -5161,6 +5165,10 @@ loc_stop_ready (QmiClientLoc *client, @@ -5167,6 +5171,10 @@ loc_stop_ready (QmiClientLoc *client,
g_signal_handler_disconnect (priv->loc_client, priv->loc_location_nmea_indication_id); g_signal_handler_disconnect (priv->loc_client, priv->loc_location_nmea_indication_id);
priv->loc_location_nmea_indication_id = 0; priv->loc_location_nmea_indication_id = 0;
} }
@ -75,7 +74,7 @@ index 09aa987a..cad75080 100644
g_clear_object (&priv->loc_client); g_clear_object (&priv->loc_client);
} }
@@ -5264,11 +5272,142 @@ loc_location_nmea_indication_cb (QmiClientLoc *client, @@ -5270,11 +5278,142 @@ loc_location_nmea_indication_cb (QmiClientLoc *client,
if (!nmea) if (!nmea)
return; return;
@ -218,7 +217,7 @@ index 09aa987a..cad75080 100644
/*****************************************************************************/ /*****************************************************************************/
/* Location: internal helper: setup minimum required NMEA traces */ /* Location: internal helper: setup minimum required NMEA traces */
@@ -5662,6 +5801,7 @@ gps_engine_loc_register_events (QmiClientLoc *client, @@ -5668,6 +5807,7 @@ gps_engine_loc_register_events (QmiClientLoc *client,
guint64 event_mask; guint64 event_mask;
event_mask = QMI_LOC_EVENT_REGISTRATION_FLAG_NMEA | event_mask = QMI_LOC_EVENT_REGISTRATION_FLAG_NMEA |
@ -226,7 +225,7 @@ index 09aa987a..cad75080 100644
QMI_LOC_EVENT_REGISTRATION_FLAG_INJECT_TIME_REQUEST | QMI_LOC_EVENT_REGISTRATION_FLAG_INJECT_TIME_REQUEST |
QMI_LOC_EVENT_REGISTRATION_FLAG_INJECT_POSITION_REQUEST; QMI_LOC_EVENT_REGISTRATION_FLAG_INJECT_POSITION_REQUEST;
input = qmi_message_loc_register_events_input_new (); input = qmi_message_loc_register_events_input_new ();
@@ -5713,12 +5853,19 @@ loc_start_ready (QmiClientLoc *client, @@ -5719,12 +5859,19 @@ loc_start_ready (QmiClientLoc *client,
g_assert (!priv->loc_client); g_assert (!priv->loc_client);
g_assert (!priv->loc_location_nmea_indication_id); g_assert (!priv->loc_location_nmea_indication_id);

View file

@ -1,12 +1,15 @@
# fp6-img fork of Alpine community/modemmanager: + the AFW-gated GNSS # fp6-img fork of Alpine community/modemmanager: + the AFW-gated GNSS
# engine unlock + Position Report location derivation (upstream MR !1463, # engine unlock + Position Report location derivation (upstream MR !1463,
# still draft) - the other half of working GNSS on the FP6. # still draft) - the other half of working GNSS on the FP6. Snapshot and
# the XMM7360 patch follow Alpine's aport (2026-10-05); the pkgver must stay
# ahead of Alpine's, or 'apk upgrade' replaces this package with theirs and
# the phone loses GNSS.
# Contributor: Stuart Cardall <developer@it-offshore.co.uk> # Contributor: Stuart Cardall <developer@it-offshore.co.uk>
maintainer="Achill Gilgenast <achill@achill.org>" maintainer="Achill Gilgenast <achill@achill.org>"
pkgname=modemmanager pkgname=modemmanager
pkgver=1.25.95_git20260709 pkgver=1.25.95_git20261005
pkgrel=101 pkgrel=101
_commit=d776ea38d29ca472a12323c1d45002ee19a66f57 _commit=7f0bf17ab518cd78925cf7e53cc0d5c42f88b41a
pkgdesc="ModemManager library" pkgdesc="ModemManager library"
url="https://www.freedesktop.org/wiki/Software/ModemManager" url="https://www.freedesktop.org/wiki/Software/ModemManager"
arch="all" arch="all"
@ -29,7 +32,7 @@ makedepends="
gtk-doc gtk-doc
libgudev-dev libgudev-dev
libmbim-dev libmbim-dev
libqmi-dev>=1.39.1 libqmi-dev
linux-headers linux-headers
meson meson
polkit-dev polkit-dev
@ -118,7 +121,7 @@ libmm() {
} }
sha512sums=" sha512sums="
fd659330b2ec4e8368807053ec01498241dec153f6f2491bb17c42e2b81c8d9a98ff5f8c153874a6d092e17c545c5ae19734bc23c85c459eb1c7b9b709e5ff58 ModemManager-d776ea38d29ca472a12323c1d45002ee19a66f57.tar.gz fd659330b2ec4e8368807053ec01498241dec153f6f2491bb17c42e2b81c8d9a98ff5f8c153874a6d092e17c545c5ae19734bc23c85c459eb1c7b9b709e5ff58 ModemManager-7f0bf17ab518cd78925cf7e53cc0d5c42f88b41a.tar.gz
6fab86c27502b29be0c6610d835a3249a4a81993eb986cff2c3ea9393fadd3f693ba4bb0532ae0e50a83d359559511859dd05f7ea2f0cb52839f535a7e49f8a0 modemmanager.rules 6fab86c27502b29be0c6610d835a3249a4a81993eb986cff2c3ea9393fadd3f693ba4bb0532ae0e50a83d359559511859dd05f7ea2f0cb52839f535a7e49f8a0 modemmanager.rules
6e234cebcdec6d1afbca164ee5c13c96f7132ef31231d5c043cc5750ebe99e362a384d0463874b3c1c30799b433e0d3286add03af13c97fa406b4b5d2b78880c modemmanager.initd 6e234cebcdec6d1afbca164ee5c13c96f7132ef31231d5c043cc5750ebe99e362a384d0463874b3c1c30799b433e0d3286add03af13c97fa406b4b5d2b78880c modemmanager.initd
f06e9b89acab5b61c5965658d62551b0f168066384674f7c4dd56feb6f811c82c640470e634e32d8c4ef62290588cf974aa5f213e5c67e797a06d33e61fa24ec 0001-intel-XMM7360-fix-big-endian-handling-of-ASN-integer.patch f06e9b89acab5b61c5965658d62551b0f168066384674f7c4dd56feb6f811c82c640470e634e32d8c4ef62290588cf974aa5f213e5c67e797a06d33e61fa24ec 0001-intel-XMM7360-fix-big-endian-handling-of-ASN-integer.patch