From 8de248c51ffa71ada1d7126ddcc6618596ebc780 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Tue, 19 Nov 2024 10:31:03 +0000 Subject: [PATCH] import RHEL 10 Beta ModemManager-1.22.0-5.el10 --- .ModemManager.metadata | 2 +- .gitignore | 2 +- ...n-helpers-avoid-using-mm_new_iso8601.patch | 48 ---- ...i-do-not-leak-a-string-in-error-path.patch | 29 ++ ...x-propagation-of-URAT-response-parse.patch | 38 +++ ...fix-a-potential-leak-in-cusd_process.patch | 31 ++ ...mi-fix-a-leak-in-error-handling-path.patch | 30 ++ ...ectel-shared-do-not-leak-name-string.patch | 34 +++ .../0006-port-qmi-fix-array-bound-check.patch | 26 ++ ...li-sms-do-not-leak-message_reference.patch | 25 ++ ...-bearer-qmi-fix-a-copy-n-paste-error.patch | 27 ++ ...i-do-not-leak-access-technology-name.patch | 33 +++ ...glib-signal-fix-a-copy-n-paste-error.patch | 25 ++ ...elpers-do-not-leak-past-PDP-on-error.patch | 39 +++ SPECS/ModemManager.spec | 265 +++++++++++++----- 15 files changed, 540 insertions(+), 114 deletions(-) delete mode 100644 SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch create mode 100644 SOURCES/0001-shared-qmi-do-not-leak-a-string-in-error-path.patch create mode 100644 SOURCES/0002-ublox-helpers-fix-propagation-of-URAT-response-parse.patch create mode 100644 SOURCES/0003-broadband-modem-fix-a-potential-leak-in-cusd_process.patch create mode 100644 SOURCES/0004-shared-qmi-fix-a-leak-in-error-handling-path.patch create mode 100644 SOURCES/0005-quectel-shared-do-not-leak-name-string.patch create mode 100644 SOURCES/0006-port-qmi-fix-array-bound-check.patch create mode 100644 SOURCES/0007-mmcli-sms-do-not-leak-message_reference.patch create mode 100644 SOURCES/0008-bearer-qmi-fix-a-copy-n-paste-error.patch create mode 100644 SOURCES/0009-sim-qmi-do-not-leak-access-technology-name.patch create mode 100644 SOURCES/0010-libmm-glib-signal-fix-a-copy-n-paste-error.patch create mode 100644 SOURCES/0011-modem-helpers-do-not-leak-past-PDP-on-error.patch diff --git a/.ModemManager.metadata b/.ModemManager.metadata index 044abfb..73b36a1 100644 --- a/.ModemManager.metadata +++ b/.ModemManager.metadata @@ -1 +1 @@ -a07ff3f71000b16e1a4f4ab4870f742520bd750c SOURCES/ModemManager-1.20.2.tar.bz2 +c55bb358cda73f50f936e4c479a04c4dfe3773d8 SOURCES/ModemManager-1.22.0.tar.bz2 diff --git a/.gitignore b/.gitignore index e683015..9135d24 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/ModemManager-1.20.2.tar.bz2 +SOURCES/ModemManager-1.22.0.tar.bz2 diff --git a/SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch b/SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch deleted file mode 100644 index d86b5ed..0000000 --- a/SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch +++ /dev/null @@ -1,48 +0,0 @@ -From cade7a759cfd98922de0bb96bfb29721d861e25e Mon Sep 17 00:00:00 2001 -From: Lubomir Rintel -Date: Tue, 13 Dec 2022 18:14:51 +0100 -Subject: [PATCH] libmm-glib,common-helpers: avoid using mm_new_iso8601_time() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It requires newer glib than we do: - - ../libmm-glib/mm-common-helpers.c: In function ‘mm_new_iso8601_time’: - ../libmm-glib/mm-common-helpers.c:1787:9: warning: ‘g_time_zone_new_offset’ is deprecated: Not available before 2.58 [-Wdeprecated-declarations] - 1787 | tz = g_time_zone_new_offset (offset_minutes * 60); - | ^~ - In file included from /usr/include/glib-2.0/glib/gdatetime.h:33: - /usr/include/glib-2.0/glib/gtimezone.h:67:25: note: declared here - 67 | GTimeZone * g_time_zone_new_offset (gint32 seconds); - | ^~~~~~~~~~~~~~~~~~~~~~ - -Let's not use the routine as opposed to bumping our requirement so that -we don't lose ability to build on CentOS 8. ---- - libmm-glib/mm-common-helpers.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c -index de49136d..91371e96 100644 ---- a/libmm-glib/mm-common-helpers.c -+++ b/libmm-glib/mm-common-helpers.c -@@ -1783,8 +1783,14 @@ mm_new_iso8601_time (guint year, - - if (have_offset) { - g_autoptr(GTimeZone) tz = NULL; -+ g_autofree gchar *identifier = NULL; - -- tz = g_time_zone_new_offset (offset_minutes * 60); -+ identifier = g_strdup_printf ("%c%02u:%02u:00", -+ (offset_minutes >= 0) ? '+' : '-', -+ ABS (offset_minutes) / 60, -+ ABS (offset_minutes) % 60); -+ -+ tz = g_time_zone_new (identifier); - dt = g_date_time_new (tz, year, month, day, hour, minute, second); - } else - dt = g_date_time_new_utc (year, month, day, hour, minute, second); --- -2.38.1 - diff --git a/SOURCES/0001-shared-qmi-do-not-leak-a-string-in-error-path.patch b/SOURCES/0001-shared-qmi-do-not-leak-a-string-in-error-path.patch new file mode 100644 index 0000000..7459ad8 --- /dev/null +++ b/SOURCES/0001-shared-qmi-do-not-leak-a-string-in-error-path.patch @@ -0,0 +1,29 @@ +From 4c28ea13d9b1e75d0bc0dfa4c588b478635c12c0 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 23 May 2024 14:43:15 +0200 +Subject: [PATCH 01/11] shared-qmi: do not leak a string in error path + +--- + src/mm-shared-qmi.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c +index 8da4ecc69..923c6b51a 100644 +--- a/src/mm-shared-qmi.c ++++ b/src/mm-shared-qmi.c +@@ -4905,9 +4905,10 @@ loc_location_get_server_indication_cb (QmiClientLoc *client, + str = g_strdup (""); + + out: +- if (error) ++ if (error) { ++ g_free (str); + g_task_return_error (task, error); +- else { ++ } else { + g_assert (str); + g_task_return_pointer (task, str, g_free); + } +-- +2.45.2 + diff --git a/SOURCES/0002-ublox-helpers-fix-propagation-of-URAT-response-parse.patch b/SOURCES/0002-ublox-helpers-fix-propagation-of-URAT-response-parse.patch new file mode 100644 index 0000000..3bfe541 --- /dev/null +++ b/SOURCES/0002-ublox-helpers-fix-propagation-of-URAT-response-parse.patch @@ -0,0 +1,38 @@ +From d550a24ffdae4492e9f9e18fdf294adcda28fb65 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 23 May 2024 14:45:22 +0200 +Subject: [PATCH 02/11] ublox/helpers: fix propagation of +URAT response parse + error + +We have been constructing a GError too late, just leaking it instead of +propagating. +--- + src/plugins/ublox/mm-modem-helpers-ublox.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/src/plugins/ublox/mm-modem-helpers-ublox.c b/src/plugins/ublox/mm-modem-helpers-ublox.c +index 0fd1c5b0b..ffb1374de 100644 +--- a/src/plugins/ublox/mm-modem-helpers-ublox.c ++++ b/src/plugins/ublox/mm-modem-helpers-ublox.c +@@ -1813,14 +1813,13 @@ mm_ublox_parse_urat_read_response (const gchar *response, + } + + out: +- if (inner_error) { +- g_propagate_error (error, inner_error); +- return FALSE; +- } +- + if (allowed == MM_MODEM_MODE_NONE) { + inner_error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_FAILED, + "Couldn't parse +URAT response: %s", response); ++ } ++ ++ if (inner_error) { ++ g_propagate_error (error, inner_error); + return FALSE; + } + +-- +2.45.2 + diff --git a/SOURCES/0003-broadband-modem-fix-a-potential-leak-in-cusd_process.patch b/SOURCES/0003-broadband-modem-fix-a-potential-leak-in-cusd_process.patch new file mode 100644 index 0000000..cce513c --- /dev/null +++ b/SOURCES/0003-broadband-modem-fix-a-potential-leak-in-cusd_process.patch @@ -0,0 +1,31 @@ +From eebd31b92e4e60078911decd87a8c6e658d20cd1 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 23 May 2024 14:54:03 +0200 +Subject: [PATCH 03/11] broadband-modem: fix a potential leak in + cusd_process_string() error handling + +On error, *converted may already be allocated and we need to free it +(but not in case we're returning it from the task). +--- + src/mm-broadband-modem.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c +index 41906c2e5..b924c3a96 100644 +--- a/src/mm-broadband-modem.c ++++ b/src/mm-broadband-modem.c +@@ -6306,9 +6306,10 @@ out: + if (error) + g_task_return_error (task, error); + else if (converted) +- g_task_return_pointer (task, converted, g_free); ++ g_task_return_pointer (task, g_steal_pointer(&converted), g_free); + else + g_assert_not_reached (); ++ g_clear_pointer (&converted, g_free); + return; + } + +-- +2.45.2 + diff --git a/SOURCES/0004-shared-qmi-fix-a-leak-in-error-handling-path.patch b/SOURCES/0004-shared-qmi-fix-a-leak-in-error-handling-path.patch new file mode 100644 index 0000000..ec46872 --- /dev/null +++ b/SOURCES/0004-shared-qmi-fix-a-leak-in-error-handling-path.patch @@ -0,0 +1,30 @@ +From 4a3542b2d00c4104e9735af9eea906c703faed20 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 23 May 2024 14:56:40 +0200 +Subject: [PATCH 04/11] shared-qmi: fix a leak in error handling path + +str needs to be freed in pds_get_agps_config_ready(). +--- + src/mm-shared-qmi.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c +index 923c6b51a..789b92a4d 100644 +--- a/src/mm-shared-qmi.c ++++ b/src/mm-shared-qmi.c +@@ -4795,9 +4795,10 @@ pds_get_agps_config_ready (QmiClientPds *client, + str = g_strdup (""); + + out: +- if (error) ++ if (error) { ++ g_free (str); + g_task_return_error (task, error); +- else { ++ } else { + g_assert (str); + g_task_return_pointer (task, str, g_free); + } +-- +2.45.2 + diff --git a/SOURCES/0005-quectel-shared-do-not-leak-name-string.patch b/SOURCES/0005-quectel-shared-do-not-leak-name-string.patch new file mode 100644 index 0000000..2a1fd18 --- /dev/null +++ b/SOURCES/0005-quectel-shared-do-not-leak-name-string.patch @@ -0,0 +1,34 @@ +From 84941606219fe440f59fbbc6057ab3782c09bba4 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Sun, 26 May 2024 23:42:41 +0200 +Subject: [PATCH] quectel/shared: do not leak name string + +--- + src/plugins/quectel/mm-shared-quectel.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/quectel/mm-shared-quectel.c b/src/plugins/quectel/mm-shared-quectel.c +index 816a570..acd7c3c 100644 +--- a/src/plugins/quectel/mm-shared-quectel.c ++++ b/src/plugins/quectel/mm-shared-quectel.c +@@ -285,8 +285,8 @@ quectel_at_port_get_firmware_revision_ready (MMBaseModem *self, + MMFirmwareUpdateSettings *update_settings; + MMModemFirmwareUpdateMethod update_methods; + const gchar *revision; +- const gchar *name; + const gchar *id; ++ gchar *name; + g_autoptr(GPtrArray) ids = NULL; + GError *error = NULL; + +@@ -309,6 +309,7 @@ quectel_at_port_get_firmware_revision_ready (MMBaseModem *self, + mm_obj_dbg (self, "revision %s converted to modem name %s", revision, name); + id = (const gchar *) g_ptr_array_index (ids, 0); + g_ptr_array_insert (ids, 0, g_strdup_printf ("%s&NAME_%s", id, name)); ++ g_free (name); + } + + mm_firmware_update_settings_set_device_ids (update_settings, (const gchar **)ids->pdata); +-- +2.45.2 + diff --git a/SOURCES/0006-port-qmi-fix-array-bound-check.patch b/SOURCES/0006-port-qmi-fix-array-bound-check.patch new file mode 100644 index 0000000..8ba7935 --- /dev/null +++ b/SOURCES/0006-port-qmi-fix-array-bound-check.patch @@ -0,0 +1,26 @@ +From 02d893f8abaffa51ad61b0bb6ce67f55de5cd217 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Sun, 26 May 2024 23:54:50 +0200 +Subject: [PATCH 06/11] port-qmi: fix array bound check + +There's an off-by-one error. +--- + src/mm-port-qmi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mm-port-qmi.c b/src/mm-port-qmi.c +index f3c64464a..38703bc20 100644 +--- a/src/mm-port-qmi.c ++++ b/src/mm-port-qmi.c +@@ -1641,7 +1641,7 @@ check_data_format_combination (GTask *task) + + /* go on to the next supported combination */ + for (++ctx->data_format_combination_i; +- ctx->data_format_combination_i <= (gint)G_N_ELEMENTS (data_format_combinations); ++ ctx->data_format_combination_i < (gint)G_N_ELEMENTS (data_format_combinations); + ctx->data_format_combination_i++) { + const DataFormatCombination *combination; + g_autofree gchar *kernel_data_mode_str = NULL; +-- +2.45.2 + diff --git a/SOURCES/0007-mmcli-sms-do-not-leak-message_reference.patch b/SOURCES/0007-mmcli-sms-do-not-leak-message_reference.patch new file mode 100644 index 0000000..9c4121e --- /dev/null +++ b/SOURCES/0007-mmcli-sms-do-not-leak-message_reference.patch @@ -0,0 +1,25 @@ +From 7658e4be92a26c5e0245a3169fb61922f0e96811 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Sun, 26 May 2024 23:58:41 +0200 +Subject: [PATCH 07/11] mmcli/sms: do not leak message_reference + +--- + cli/mmcli-sms.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cli/mmcli-sms.c b/cli/mmcli-sms.c +index 6586d0373..46bc95ef8 100644 +--- a/cli/mmcli-sms.c ++++ b/cli/mmcli-sms.c +@@ -191,6 +191,8 @@ print_sms_info (MMSms *sms) + mmcli_output_string (MMC_F_SMS_PROPERTIES_DELIVERY_STATE, delivery_state); + mmcli_output_string (MMC_F_SMS_PROPERTIES_DISCH_TIMESTAMP, mm_sms_get_discharge_timestamp (sms)); + mmcli_output_dump (); ++ ++ g_free (message_reference); + } + + static void +-- +2.45.2 + diff --git a/SOURCES/0008-bearer-qmi-fix-a-copy-n-paste-error.patch b/SOURCES/0008-bearer-qmi-fix-a-copy-n-paste-error.patch new file mode 100644 index 0000000..11e5cf9 --- /dev/null +++ b/SOURCES/0008-bearer-qmi-fix-a-copy-n-paste-error.patch @@ -0,0 +1,27 @@ +From f8f41b677a234f98085854253b2a1a42b0f09d6f Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Sun, 26 May 2024 23:59:47 +0200 +Subject: [PATCH 08/11] bearer/qmi: fix a copy'n'paste error + +Probably not a real issue, given if there's a password there's probably +an user name too. +--- + src/mm-bearer-qmi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c +index 504134759..4e64e220c 100644 +--- a/src/mm-bearer-qmi.c ++++ b/src/mm-bearer-qmi.c +@@ -1330,7 +1330,7 @@ build_start_network_input (ConnectContext *ctx) + if (ctx->auth != QMI_WDS_AUTHENTICATION_NONE) { + if (ctx->user) + qmi_message_wds_start_network_input_set_username (input, ctx->user, NULL); +- if (ctx->user) ++ if (ctx->password) + qmi_message_wds_start_network_input_set_password (input, ctx->password, NULL); + } + } +-- +2.45.2 + diff --git a/SOURCES/0009-sim-qmi-do-not-leak-access-technology-name.patch b/SOURCES/0009-sim-qmi-do-not-leak-access-technology-name.patch new file mode 100644 index 0000000..9d939da --- /dev/null +++ b/SOURCES/0009-sim-qmi-do-not-leak-access-technology-name.patch @@ -0,0 +1,33 @@ +From 6a11c906d0604748db9a81bf470c821db2b862fb Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 27 May 2024 00:03:23 +0200 +Subject: [PATCH 09/11] sim/qmi: do not leak access technology name + +--- + src/mm-sim-qmi.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/mm-sim-qmi.c b/src/mm-sim-qmi.c +index 03a442403..1d24c23b4 100644 +--- a/src/mm-sim-qmi.c ++++ b/src/mm-sim-qmi.c +@@ -991,11 +991,13 @@ set_preferred_networks_reload_ready (MMBaseSim *self, + } + /* Check if there are access technology bits requested but unset */ + if ((loaded_act & set_act) != set_act) { +- MMModemAccessTechnology unset = set_act & ~loaded_act; ++ MMModemAccessTechnology unset = set_act & ~loaded_act; ++ gchar *act; + ++ act = mm_modem_access_technology_build_string_from_mask (unset); + mm_obj_warn (self, "access technologies '%s' not set for operator code '%s'", +- mm_modem_access_technology_build_string_from_mask (unset), +- set_op_code); ++ act, set_op_code); ++ g_free (act); + error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED, + "Access technology unsupported by modem or SIM"); + break; +-- +2.45.2 + diff --git a/SOURCES/0010-libmm-glib-signal-fix-a-copy-n-paste-error.patch b/SOURCES/0010-libmm-glib-signal-fix-a-copy-n-paste-error.patch new file mode 100644 index 0000000..f2c0147 --- /dev/null +++ b/SOURCES/0010-libmm-glib-signal-fix-a-copy-n-paste-error.patch @@ -0,0 +1,25 @@ +From 91f7bbf85b1fccc0c3297acf4203f32b1f195397 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 27 May 2024 00:04:38 +0200 +Subject: [PATCH 10/11] libmm-glib/signal: fix a copy'n'paste error + +--- + libmm-glib/mm-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmm-glib/mm-signal.c b/libmm-glib/mm-signal.c +index e71cd24ba..f8d8c4aa5 100644 +--- a/libmm-glib/mm-signal.c ++++ b/libmm-glib/mm-signal.c +@@ -379,7 +379,7 @@ mm_signal_get_string (MMSignal *self) + g_string_append_printf (printable, "%serror rate: %f %%", printable->len ? ", " : "", self->priv->error_rate); + if (self->priv->rscp != MM_SIGNAL_UNKNOWN) + g_string_append_printf (printable, "%sRSCP: %f dBm", printable->len ? ", " : "", self->priv->rscp); +- if (self->priv->rscp != MM_SIGNAL_UNKNOWN) ++ if (self->priv->rsrp != MM_SIGNAL_UNKNOWN) + g_string_append_printf (printable, "%sRSRP: %f dBm", printable->len ? ", " : "", self->priv->rsrp); + if (self->priv->rsrq != MM_SIGNAL_UNKNOWN) + g_string_append_printf (printable, "%sRSRQ: %f dB", printable->len ? ", " : "", self->priv->rsrq); +-- +2.45.2 + diff --git a/SOURCES/0011-modem-helpers-do-not-leak-past-PDP-on-error.patch b/SOURCES/0011-modem-helpers-do-not-leak-past-PDP-on-error.patch new file mode 100644 index 0000000..cf53f97 --- /dev/null +++ b/SOURCES/0011-modem-helpers-do-not-leak-past-PDP-on-error.patch @@ -0,0 +1,39 @@ +From a877ed8015a4fcfb05961b5bfe9d03f47cdc55a5 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 27 May 2024 00:06:45 +0200 +Subject: [PATCH 11/11] modem-helpers: do not leak past PDP on error + +If CID parsing from the +CGDCONT response fails, the very last PDP +structure allocated is not put on the list yet and therefore +mm_3gpp_pdp_context_list_free() wouldn't free it. + +Let's put it on the list first, as to not leak it on error. +--- + src/mm-modem-helpers.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c +index 8dad5a398..9f0c8a8ce 100644 +--- a/src/mm-modem-helpers.c ++++ b/src/mm-modem-helpers.c +@@ -1870,6 +1870,8 @@ mm_3gpp_parse_cgdcont_read_response (const gchar *reply, + MM3gppPdpContext *pdp; + + pdp = g_slice_new0 (MM3gppPdpContext); ++ list = g_list_prepend (list, pdp); ++ + if (!mm_get_uint_from_match_info (match_info, 1, &pdp->cid)) { + inner_error = g_error_new (MM_CORE_ERROR, + MM_CORE_ERROR_FAILED, +@@ -1879,8 +1881,6 @@ mm_3gpp_parse_cgdcont_read_response (const gchar *reply, + } + pdp->pdp_type = ip_family; + pdp->apn = mm_get_string_unquoted_from_match_info (match_info, 3); +- +- list = g_list_prepend (list, pdp); + } + + g_free (str); +-- +2.45.2 + diff --git a/SPECS/ModemManager.spec b/SPECS/ModemManager.spec index 9a3bbfc..ce6b66c 100644 --- a/SPECS/ModemManager.spec +++ b/SPECS/ModemManager.spec @@ -1,23 +1,28 @@ -%if 0%{?fedora} || 0%{?rhel} >= 9 -%bcond_without qrtr -%else -%bcond_with qrtr -%endif - %global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad) %global qmi_version %(pkg-config --modversion qmi-glib 2>/dev/null || echo bad) %global mbim_version %(pkg-config --modversion mbim-glib 2>/dev/null || echo bad) +%global qrtr_version %(pkg-config --modversion qrtr-glib 2>/dev/null || echo bad) Name: ModemManager -Version: 1.20.2 -Release: 1%{?dist} +Version: 1.22.0 +Release: 5%{?dist} Summary: Mobile broadband modem management service -License: GPLv2+ +License: GPL-2.0-or-later URL: http://www.freedesktop.org/wiki/Software/ModemManager/ Source: https://gitlab.com/linux-mobile-broadband/ModemManager/-/archive/%{version}/%{name}-%{version}.tar.bz2 -# https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/938 -Patch0: 0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch +# All of these are applied upstream. Can frop on rebase to 1.24 +Patch0: 0001-shared-qmi-do-not-leak-a-string-in-error-path.patch +Patch1: 0002-ublox-helpers-fix-propagation-of-URAT-response-parse.patch +Patch2: 0003-broadband-modem-fix-a-potential-leak-in-cusd_process.patch +Patch3: 0004-shared-qmi-fix-a-leak-in-error-handling-path.patch +Patch4: 0005-quectel-shared-do-not-leak-name-string.patch +Patch5: 0006-port-qmi-fix-array-bound-check.patch +Patch6: 0007-mmcli-sms-do-not-leak-message_reference.patch +Patch7: 0008-bearer-qmi-fix-a-copy-n-paste-error.patch +Patch8: 0009-sim-qmi-do-not-leak-access-technology-name.patch +Patch9: 0010-libmm-glib-signal-fix-a-copy-n-paste-error.patch +Patch10: 0011-modem-helpers-do-not-leak-past-PDP-on-error.patch # For mbim-proxy and qmi-proxy Requires: libmbim-utils @@ -29,6 +34,7 @@ Requires: %{name}-glib%{?_isa} = %{version}-%{release} Conflicts: glib2%{?_isa} < %{glib2_version} Conflicts: libqmi%{?_isa} < %{qmi_version} Conflicts: libmbim%{?_isa} < %{mbim_version} +Conflicts: libqrtr-glib%{?_isa} < %{qrtr_version} Requires(post): systemd Requires(postun): systemd @@ -36,20 +42,17 @@ Requires(preun): systemd Requires: polkit -BuildRequires: automake autoconf libtool autoconf-archive -BuildRequires: dbus +BuildRequires: meson >= 0.53 +BuildRequires: dbus-devel BuildRequires: dbus-daemon BuildRequires: gettext-devel >= 0.19.8 BuildRequires: glib2-devel >= 2.56 BuildRequires: gobject-introspection-devel >= 1.38 BuildRequires: gtk-doc BuildRequires: libgudev1-devel >= 232 -BuildRequires: libmbim-devel >= 1.28.0 +BuildRequires: libmbim-devel >= 1.30.0 BuildRequires: libqmi-devel >= 1.32.0 -%if %{with qrtr} BuildRequires: libqrtr-glib-devel >= 1.0.0 -%endif -BuildRequires: make BuildRequires: systemd BuildRequires: systemd-devel >= 209 BuildRequires: vala @@ -61,6 +64,7 @@ BuildRequires: polkit-devel The ModemManager service manages WWAN modems and provides a consistent API for interacting with these devices to client applications. + %package devel Summary: Libraries and headers for adding ModemManager support to applications Requires: %{name}%{?_isa} = %{version}-%{release} @@ -70,16 +74,20 @@ Requires: pkgconfig This package contains various headers for accessing some ModemManager functionality from applications. + %package glib Summary: Libraries for adding ModemManager support to applications that use glib. +License: LGPL-2.1-or-later Requires: glib2 >= %{glib2_version} %description glib This package contains the libraries that make it easier to use some ModemManager functionality from applications that use glib. + %package glib-devel Summary: Libraries and headers for adding ModemManager support to applications that use glib. +License: LGPL-2.1-or-later Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release} Requires: %{name}-glib%{?_isa} = %{version}-%{release} @@ -90,66 +98,63 @@ Requires: pkgconfig This package contains various headers for accessing some ModemManager functionality from glib applications. + %package vala Summary: Vala bindings for ModemManager +License: LGPL-2.1-or-later Requires: vala Requires: %{name}-glib%{?_isa} = %{version}-%{release} %description vala Vala bindings for ModemManager + %prep %autosetup -p1 + %build -# Regenerate configure, because the one that is shipped -# doesn't seem to obey --disable-rpath for reasons unknown. -autoreconf -vif -%configure \ - --disable-rpath \ - --disable-silent-rules \ - --with-systemd-suspend-resume \ - --with-systemd-journal \ - --enable-more-warnings=no \ - --with-udev-base-dir=%{_prefix}/lib/udev \ - --enable-gtk-doc \ - --with-qmi=yes \ - --with-mbim=yes \ -%ifarch aarch64 - --enable-plugin-qcom-soc \ -%endif -%if %{with qrtr} - --with-qrtr \ -%else - --without-qrtr \ -%endif - --disable-static \ - --with-polkit=permissive \ - --with-dist-version=%{version}-%{release} +# Let's avoid BuildRequiring bash-completion because it changes behavior +# of shell, at least until the .pc file gets into the -devel subpackage. +# We'll just install the bash-completion file ourselves. +%meson \ + -Ddist_version='"%{version}-%{release}"' \ + -Dudevdir=/usr/lib/udev \ + -Dsystemdsystemunitdir=%{_unitdir} \ + -Dvapi=true \ + -Dgtk_doc=true \ + -Dpolkit=permissive \ + -Dbash_completion=false +%meson_build -%make_build - -%check -# make check %install -%make_install - -find %{buildroot} -type f -name "*.la" -delete - +%meson_install +find %{buildroot}%{_datadir}/gtk-doc |xargs touch --reference meson.build %find_lang %{name} +mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/ +cp -a cli/mmcli-completion %{buildroot}%{_datadir}/bash-completion/completions/mmcli + + +%check +# meson_test + %ldconfig_scriptlets glib + %post %systemd_post ModemManager.service + %preun %systemd_preun ModemManager.service + %postun %systemd_postun ModemManager.service + %files -f %{name}.lang %license COPYING %doc README @@ -168,6 +173,7 @@ find %{buildroot} -type f -name "*.la" -delete %{_mandir}/man1/* %{_mandir}/man8/* + %files devel %{_includedir}/ModemManager/ %dir %{_datadir}/gtk-doc/html/%{name} @@ -175,11 +181,13 @@ find %{buildroot} -type f -name "*.la" -delete %{_libdir}/pkgconfig/%{name}.pc %{_datadir}/dbus-1/interfaces/*.xml + %files glib %license COPYING %{_libdir}/libmm-glib.so.* %{_libdir}/girepository-1.0/*.typelib + %files glib-devel %{_libdir}/libmm-glib.so %dir %{_includedir}/libmm-glib @@ -189,40 +197,169 @@ find %{buildroot} -type f -name "*.la" -delete %{_datadir}/gtk-doc/html/libmm-glib/* %{_datadir}/gir-1.0/*.gir + %files vala %{_datadir}/vala/vapi/libmm-glib.* + %changelog +* Tue Jun 25 2024 Lubomir Rintel - 1.22.0-5 +- Add patches for a couple of bugs that make static analysis unhappy (RHEL-38991) + +* Mon Jun 24 2024 Troy Dawson - 1.22.0-4 +- Bump release for June 2024 mass rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.22.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.22.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Jan 09 2024 Dennis Gilmore - 1.22.0-1 +- update to 1.22.0 + +* Sun Jul 30 2023 Tao Jin - 1.20.6-3 +- Rebuilt for RHBZ#2226577 + +* Wed Jul 19 2023 Fedora Release Engineering - 1.20.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Mar 24 2023 Lubomir Rintel - 1.20.6-1 +- Update to 1.20.6 + +* Wed Jan 18 2023 Fedora Release Engineering - 1.20.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 10 2023 Lubomir Rintel - 1.20.2-3 +- Version the qrtr-glib dependency + +* Sun Jan 08 2023 Lubomir Rintel - 1.20.2-2 +- Switch to build using meson + * Tue Nov 22 2022 Lubomir Rintel - 1.20.2-1 - Update to 1.20.2 -* Tue Oct 1 2021 Ana Cabral - 1.18.2-1 -- Upgrade to 1.18.2 release +* Wed Jul 20 2022 Fedora Release Engineering - 1.18.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -* Tue Apr 20 2021 Beniamino Galvani - 1.10.8-4 -- Fix crash when modem goes away during a connection attempt (rh #1936416) +* Sat May 14 2022 Peter Robinson - 1.18.8-1 +- Update to 1.18.8 -* Wed Feb 24 2021 Beniamino Galvani - 1.10.8-3 -- Rebuild to fix multilib conflicts (rh #1853161) +* Sat Feb 12 2022 Peter Robinson - 1.18.6-1 +- Update to 1.18.6 -* Fri Feb 14 2020 Antonio Cardace - 1.10.8-2 -- Fix race condition when cancelling a flash operation (rh #1758128) +* Wed Jan 19 2022 Fedora Release Engineering - 1.18.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild -* Fri Nov 29 2019 Lubomir Rintel - 1.10.8-1 +* Sun Sep 19 2021 Peter Robinson - 1.18.2-1 +- update to 1.18.2 + +* Mon Sep 13 2021 Thomas Haller - 1.18.0-2 +- depend ModemManager on polkit package + +* Sun Sep 12 2021 Peter Robinson - 1.18.0-1 +- Update to 1.18.0 + +* Sat Aug 14 2021 Peter Robinson - 1.17.900-1 +- Update to 1.18.0 RC1 + +* Wed Aug 04 2021 Peter Robinson - 1.16.8-4 +- Rebuild for new libmbim/libqmi + +* Thu Jul 29 2021 Bastien Nocera - 1.16.8-3 ++ ModemManager-1.16.8-3 +- Add polkit support as used upstream + +* Wed Jul 21 2021 Fedora Release Engineering - 1.16.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jul 17 2021 Peter Robinson - 1.16.8-1 +- Update to 1.16.8 + +* Mon Jun 07 2021 Peter Robinson - 1.16.6-1 +- Update to 1.16.6 + +* Fri Apr 30 2021 Peter Robinson - 1.16.4-1 +- Update to 1.16.4 + +* Mon Jan 25 2021 Fedora Release Engineering - 1.14.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 16 2021 Peter Robinson - 1.14.10-1 +- Update to 1.14.10 +- Spec clean up + +* Mon Dec 28 2020 Peter Robinson - 1.14.8-2 +- Drop unneeded libxslt dependency + +* Mon Dec 28 2020 Peter Robinson - 1.14.8-1 +- Update to 1.14.8 + +* Tue Nov 3 2020 Peter Robinson - 1.14.6-1 +- Update to 1.14.6 + +* Thu Aug 20 2020 Peter Robinson - 1.14.2-1 +- Update to 1.14.2 + +* Mon Jul 27 2020 Peter Robinson - 1.14.0-1 +- Update to 1.14.0 + +* Mon Jul 27 2020 Fedora Release Engineering - 1.12.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Mar 24 2020 Lubomir Rintel - 1.12.8-1 +- Update to 1.12.8 release + +* Thu Mar 5 2020 Peter Robinson 1.12.6-1 +- Update to 1.12.6 release + +* Tue Jan 28 2020 Fedora Release Engineering - 1.10.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Nov 29 2019 Lubomir Rintel - 1.10.8-1 - Update to 1.10.8 release -* Wed Oct 16 2019 Lubomir Rintel - 1.10.6-1 +* Mon Sep 23 2019 Lubomir Rintel - 1.10.6-2 +- Don't grab cdc_ether devices on Sierra QMI modems + +* Mon Sep 23 2019 Lubomir Rintel - 1.10.6-1 - Update to 1.10.6 release +* Wed Jul 24 2019 Fedora Release Engineering - 1.10.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Wed Jul 10 2019 Lubomir Rintel - 1.10.4-1 -- Update to 1.10.2 release (rh #1543498) +- Update to 1.10.4 release * Fri Jun 14 2019 Lubomir Rintel - 1.10.2-1 -- Update to 1.10.2 release (rh #1543498) -- Don't grab cdc_ether devices on Sierra QMI modems (rh #1712031) +- Update to 1.10.2 release +- Don't grab cdc_ether devices on Sierra QMI modems -* Mon May 06 2019 Lubomir Rintel - 1.10.0-1 -- Update to 1.10.0 release +* Wed Mar 27 2019 Richard Hughes 1.10.0-1 +- Update to the release tarball. + +* Mon Feb 04 2019 Kalev Lember - 1.10.0-0.3.rc1 +- Update BRs for vala packaging changes + +* Thu Jan 31 2019 Fedora Release Engineering - 1.10.0-0.2.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 15 2019 Lubomir Rintel - 1.10.0-0.1.rc1 +- Update to 1.10 release candidate 1 + +* Tue Jan 15 2019 Lubomir Rintel - 1.8.2-1 +- Update to 1.8.2 release + +* Tue Jul 31 2018 Florian Weimer - 1.8.0-4 +- Rebuild with fixed binutils + +* Sun Jul 29 2018 Rex Dieter - 1.8.0-3 +- -devel: own %%_includedir/ModemManager/ +- %%build: --disable-silent-rules +- use %%make_build %%make_install + +* Thu Jul 12 2018 Fedora Release Engineering - 1.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Sun Jun 03 2018 Lubomir Rintel - 1.8.0-1 - Update to 1.8.0 release