diff options
-rw-r--r-- | user/libqmi/APKBUILD | 9 | ||||
-rw-r--r-- | user/libqmi/endian.patch | 69 |
2 files changed, 75 insertions, 3 deletions
diff --git a/user/libqmi/APKBUILD b/user/libqmi/APKBUILD index f747cdd65..4b0f96ece 100644 --- a/user/libqmi/APKBUILD +++ b/user/libqmi/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libqmi -pkgver=1.22.4 +pkgver=1.24.0 pkgrel=0 pkgdesc="Library for interfacing with Qualcomm modems" url="https://www.freedesktop.org/wiki/Software/libqmi/" @@ -10,7 +10,9 @@ license="LGPL-2.0+" depends="" makedepends="glib-dev libgudev-dev python3" subpackages="$pkgname-dev $pkgname-doc" -source="https://www.freedesktop.org/software/libqmi/libqmi-$pkgver.tar.xz" +source="https://www.freedesktop.org/software/libqmi/libqmi-$pkgver.tar.xz + endian.patch + " build() { ./configure \ @@ -32,4 +34,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="eaa17cb7a19c73db0e1c50c714dab73ad5f97d85de86b74135085ecf31d048b80f2476509139832327925eeca97bee24e18bab33d87e814fe9b7f190ee823a34 libqmi-1.22.4.tar.xz" +sha512sums="e899765e67c1db0f758030e78b296015c476f938bb2afa01594b3e71a0b8d5fc2237c8272497aec891d5555523ecf0fecd69c4d0e14165c07072780621b3b502 libqmi-1.24.0.tar.xz +af01895913a66de52a79cb6de63a56025c8ee84ca7d62b91d3798d626b2eb133bc3c933fdac49d7b73874f3f641c158fb466b7567e6224d7d8a0b58e932a14d5 endian.patch" diff --git a/user/libqmi/endian.patch b/user/libqmi/endian.patch new file mode 100644 index 000000000..cf84b481b --- /dev/null +++ b/user/libqmi/endian.patch @@ -0,0 +1,69 @@ +From 6030b9bb2e0ed9f3824a34cef548feaefceb9e37 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Fri, 4 Oct 2019 17:45:10 -0500 +Subject: [PATCH 1/2] libqmi-glib: Fix message creation on BE systems + +Creation of the fake QMUX header wrote the length as a native value, which +caused the wrong value to be written on big endian systems. + +Before, a test run on a ppc64 system gave: + +ERROR:test-message.c:296:test_message_new_request_from_data: assertion failed: (self) + /libqmi-glib/message/new/request: OK + /libqmi-glib/message/new/request-from-data: FAIL + +Adding a g_assert_no_error gave the more helpful message: + +ERROR:test-message.c:296:test_message_new_request_from_data: assertion failed (error == NULL): QMUX length and buffer length don't match (3072 != 12) (qmi_core_error_quark, 4) + +After this commit is applied, all tests pass on a big endian ppc64 system. +--- + src/libqmi-glib/qmi-message.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libqmi-glib/qmi-message.c b/src/libqmi-glib/qmi-message.c +index b82069e..41c5b43 100644 +--- a/src/libqmi-glib/qmi-message.c ++++ b/src/libqmi-glib/qmi-message.c +@@ -478,7 +478,7 @@ qmi_message_new_from_data (QmiService service, + /* Set up fake QMUX header */ + buffer = (struct full_message *)(self->data); + buffer->marker = QMI_MESSAGE_QMUX_MARKER; +- buffer->qmux.length = buffer_len - 1; ++ buffer->qmux.length = GUINT16_TO_LE(buffer_len - 1); + buffer->qmux.flags = 0; + buffer->qmux.service = service; + buffer->qmux.client = client_id; +-- +2.22.1 + +From e299023094516a5be3ffb05f66ea90c47e966811 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Fri, 4 Oct 2019 17:49:07 -0500 +Subject: [PATCH 2/2] libqmi-glib: Add small error test to test-message + +The previous commit was easier to diagnose with the error condition from +qmi_message_new_from_data provided. This change adds g_assert_no_error to +the test_message_new_request_from_data case so that any future issues can +be diagnosed quickly. +--- + src/libqmi-glib/test/test-message.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/libqmi-glib/test/test-message.c b/src/libqmi-glib/test/test-message.c +index b6ea711..e41917a 100644 +--- a/src/libqmi-glib/test/test-message.c ++++ b/src/libqmi-glib/test/test-message.c +@@ -292,7 +292,8 @@ test_message_new_request_from_data (void) + qmi = g_byte_array_new (); + g_byte_array_append (qmi, expected_buffer, sizeof (expected_buffer)); + +- self = qmi_message_new_from_data (QMI_SERVICE_DMS, 0x01, qmi, NULL); ++ self = qmi_message_new_from_data (QMI_SERVICE_DMS, 0x01, qmi, &error); ++ g_assert_no_error (error); + g_assert (self); + + /* check that the QMUX header contains the right values*/ +-- +2.22.1 + |